diff --git a/AMESCoreStudio.Web/Controllers/BASController.cs b/AMESCoreStudio.Web/Controllers/BASController.cs index 74c3d221..e3ed8eb3 100644 --- a/AMESCoreStudio.Web/Controllers/BASController.cs +++ b/AMESCoreStudio.Web/Controllers/BASController.cs @@ -7,6 +7,7 @@ using AMESCoreStudio.WebApi; using System.Collections.Generic; using Microsoft.AspNetCore.Mvc.Rendering; using AMESCoreStudio.WebApi.Models.BAS; +using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.Web.Controllers @@ -191,6 +192,32 @@ namespace AMESCoreStudio.Web.Controllers ViewBag.ProcessTypeList = ProcessTypeItems; } + private async Task GetRuleStationsList() + { + var result = await _basApi.GetRuleStations(); + + var RuleStationItems = new List(); + for (int i = 0; i < result.Count; i++) + { + RuleStationItems.Add(new SelectListItem(result[i].Station.UnitNo + result[i].Station.StationName, result[i].RuleStationID.ToString())); + } + ViewBag.RuleStationList = RuleStationItems; + } + public void GetUserID() + { + var userID = ""; + HttpContext.Request.Cookies.TryGetValue("UserID", out userID); + int user_id = 0; + if (userID != null) + { + if (int.Parse(userID.ToString()) >= 0) + { + user_id = int.Parse(userID.ToString()); + } + } + ViewBag.UserID = user_id; + } + [HttpPost] public async Task GetFlowRuleJson(string unit_no) { @@ -1996,5 +2023,318 @@ namespace AMESCoreStudio.Web.Controllers return Json(new Table() { count = 0, data = null }); } #endregion + + #region BAS017料號燒机時間资料维护相关 + + public IActionResult BAS017() + { + return View(); + } + + //新增頁面 + public async Task BAS017C() + { + GetUserID(); + await GetUnitList(); + return View(); + } + + //修改页面 + [HttpGet] + public async Task BAS017UAsync(int id) + { + await GetUnitList(); + await GetRuleStationsList(); + GetUserID(); + var result = await _basApi.GetMaterialStationsItem(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task BAS017DAsync(int id) + { + var result = await _basApi.DeleteMaterialStationsItem(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task BAS017CSaveAsync(MaterialStationsItem model) + { + + if (ModelState.IsValid) + { + IResultModel result; + + result = await _basApi.PostMaterialStationsItem(JsonConvert.SerializeObject(model)); + + + if (result.Success) + { + var _msg = "添加成功!"; + return RedirectToAction("Refresh", "Home", new { msg = _msg }); + } + else + { + if (result.Errors.Count > 0) + { + ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); + } + else + { + ModelState.AddModelError("error", result.Msg); + } + } + } + + return View("BAS017C", model); + + } + + [HttpPost] + public async Task BAS017USaveAsync(MaterialStationsItem model) + { + + if (ModelState.IsValid) + { + IResultModel result; + + result = await _basApi.PutMaterialStationsItem(model.MsiID, JsonConvert.SerializeObject(model)); + + + if (result.Success) + { + var _msg = "修改成功!"; + return RedirectToAction("Refresh", "Home", new { msg = _msg }); + } + else + { + if (result.Errors.Count > 0) + { + ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); + } + else + { + ModelState.AddModelError("error", result.Msg); + } + } + } + return View("BAS017U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetMaterialStationsItemsAsync() + { + var result = await _basApi.GetMaterialStationsItems(); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + + public async Task GetMaterialStationsItemAsync(int ID) + { + var result = await _basApi.GetMaterialStationsItem(ID); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + + public async Task GetMaterialStationsItemByItemIDAsync(int ID) + { + var result = await _basApi.GetMaterialStationsItemByItemID(ID); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + public async Task GetMaterialItemByNoAsync(string id) + { + var result = await _pcsApi.GetMaterialItemByItemNO(id); + + + if (result != null) + { + return Json(new Result() { success = true, data = result }); + } + + return Json(new Result() { success = false, data = null }); + } + public async Task GetRuleStationAsync() + { + + var result = await _basApi.GetRuleStations(); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + #endregion + + #region BAS018料號燒机時間资料维护相关 + + public IActionResult BAS018() + { + return View(); + } + + //新增頁面 + public async Task BAS018C() + { + await GetUnitList(); + GetUserID(); + return View(); + } + + //修改页面 + [HttpGet] + public async Task BAS018UAsync(int id) + { + await GetUnitList(); + await GetRuleStationsList(); + GetUserID(); + var result = await _basApi.GetMaterialOutfit(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task BAS018DAsync(int id) + { + var result = await _basApi.DeleteMaterialOutfit(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task BAS018CSaveAsync(MaterialOutfit model) + { + + if (ModelState.IsValid) + { + IResultModel result; + + result = await _basApi.PostMaterialOutfit(JsonConvert.SerializeObject(model)); + + + if (result.Success) + { + var _msg = "添加成功!"; + return RedirectToAction("Refresh", "Home", new { msg = _msg }); + } + else + { + if (result.Errors.Count > 0) + { + ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); + } + else + { + ModelState.AddModelError("error", result.Msg); + } + } + } + + return View("BAS018C", model); + + } + + [HttpPost] + public async Task BAS018USaveAsync(MaterialOutfit model) + { + + if (ModelState.IsValid) + { + IResultModel result; + + result = await _basApi.PutMaterialOutfit(model.MaterialOutfitID, JsonConvert.SerializeObject(model)); + + + if (result.Success) + { + var _msg = "修改成功!"; + return RedirectToAction("Refresh", "Home", new { msg = _msg }); + } + else + { + if (result.Errors.Count > 0) + { + ModelState.AddModelError(result.Errors[0].Id, result.Errors[0].Msg); + } + else + { + ModelState.AddModelError("error", result.Msg); + } + } + } + return View("BAS018U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetMaterialOutfitsAsync() + { + var result = await _basApi.GetMaterialOutfits(); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + + public async Task GetMaterialOutfitAsync(int ID) + { + var result = await _basApi.GetMaterialOutfit(ID); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + + public async Task GetMaterialOutfitByItemIDAsync(int ID) + { + var result = await _basApi.GetMaterialOutfitByItemID(ID); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + #endregion + } } diff --git a/AMESCoreStudio.Web/HttpApis/IBAS.cs b/AMESCoreStudio.Web/HttpApis/IBAS.cs index f59b32f4..b709640d 100644 --- a/AMESCoreStudio.Web/HttpApis/IBAS.cs +++ b/AMESCoreStudio.Web/HttpApis/IBAS.cs @@ -4,6 +4,7 @@ using WebApiClient.Attributes; using AMESCoreStudio.WebApi; using Microsoft.AspNetCore.Mvc; using AMESCoreStudio.WebApi.Models.BAS; +using AMESCoreStudio.WebApi.Models.AMES; using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.Web @@ -713,5 +714,103 @@ namespace AMESCoreStudio.Web /// [WebApiClient.Attributes.HttpGet("api/ProcessTypes")] ITask> GetProcessType(); + + #region BAS017料號工作項目對應維護相關 + + /// + /// 新增料號工作項目對應 + /// + /// + [WebApiClient.Attributes.HttpPost("api/MaterialStationsItem")] + ITask> PostMaterialStationsItem([FromBody, RawJsonContent] string model); + + /// + /// 更新料號工作項目對應 + /// + /// + [WebApiClient.Attributes.HttpPut("api/MaterialStationsItem/{id}")] + ITask> PutMaterialStationsItem(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除料料號工作項目對應 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/MaterialStationsItem/{id}")] + ITask> DeleteMaterialStationsItem(int id); + + /// + /// 根據ID獲取指定料號工作項目對應資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/MaterialStationsItem/{id}")] + ITask> GetMaterialStationsItem(int id); + + /// + /// 獲取料號工作項目資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/MaterialStationsItems")] + ITask> GetMaterialStationsItems(); + + /// + /// 獲取料號工作項目對應ByItemID + /// + /// + [WebApiClient.Attributes.HttpGet("api/MaterialStationsItem/ByItemID/{id}")] + ITask> GetMaterialStationsItemByItemID(int id); + + + + #endregion + + #region BAS018料號治具對應維護相關 + + /// + /// 新增料號治具對應 + /// + /// + [WebApiClient.Attributes.HttpPost("api/MaterialOutfit")] + ITask> PostMaterialOutfit([FromBody, RawJsonContent] string model); + + /// + /// 更新料號治具對應 + /// + /// + [WebApiClient.Attributes.HttpPut("api/MaterialOutfit/{id}")] + ITask> PutMaterialOutfit(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除料料號治具對應 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/MaterialOutfit/{id}")] + ITask> DeleteMaterialOutfit(int id); + + /// + /// 根據ID獲取指定料號治具對應資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/MaterialOutfit/{id}")] + ITask> GetMaterialOutfit(int id); + + /// + /// 獲取料號治具資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/MaterialOutfit")] + ITask> GetMaterialOutfits(); + + /// + /// 獲取料號治具對應ByItemID + /// + /// + [WebApiClient.Attributes.HttpGet("api/MaterialOutfit/ByItemID/{id}")] + ITask> GetMaterialOutfitByItemID(int id); + + + + #endregion + + } } diff --git a/AMESCoreStudio.Web/Views/BAS/BAS017.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS017.cshtml new file mode 100644 index 00000000..3541ab6b --- /dev/null +++ b/AMESCoreStudio.Web/Views/BAS/BAS017.cshtml @@ -0,0 +1,189 @@ +@{ + ViewData["Title"] = "料號工作項目對應維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+
+ +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/BAS/BAS017C.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS017C.cshtml new file mode 100644 index 00000000..de678ef3 --- /dev/null +++ b/AMESCoreStudio.Web/Views/BAS/BAS017C.cshtml @@ -0,0 +1,139 @@ +@model AMESCoreStudio.WebApi.Models.AMES.MaterialStationsItem + + +@{ ViewData["Title"] = "BAS017C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + +
+ + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/BAS/BAS017U.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS017U.cshtml new file mode 100644 index 00000000..971afb76 --- /dev/null +++ b/AMESCoreStudio.Web/Views/BAS/BAS017U.cshtml @@ -0,0 +1,136 @@ +@model AMESCoreStudio.WebApi.Models.AMES.MaterialStationsItem + + +@{ ViewData["Title"] = "BAS017U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + +
+ + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/BAS/BAS018.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS018.cshtml new file mode 100644 index 00000000..392a13c5 --- /dev/null +++ b/AMESCoreStudio.Web/Views/BAS/BAS018.cshtml @@ -0,0 +1,182 @@ +@{ + ViewData["Title"] = "料號治具對應維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+ +
+
+
+
+
+
+
+ +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/BAS/BAS018C.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS018C.cshtml new file mode 100644 index 00000000..c1ed133a --- /dev/null +++ b/AMESCoreStudio.Web/Views/BAS/BAS018C.cshtml @@ -0,0 +1,129 @@ +@model AMESCoreStudio.WebApi.Models.AMES.MaterialOutfit + + +@{ ViewData["Title"] = "BAS018C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + +
+ + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/BAS/BAS018U.cshtml b/AMESCoreStudio.Web/Views/BAS/BAS018U.cshtml new file mode 100644 index 00000000..327dc98c --- /dev/null +++ b/AMESCoreStudio.Web/Views/BAS/BAS018U.cshtml @@ -0,0 +1,126 @@ +@model AMESCoreStudio.WebApi.Models.AMES.MaterialOutfit + + +@{ ViewData["Title"] = "BAS018U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + +
+ + + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.dll b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.dll index d1f65e56..c9feea72 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.dll and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.dll differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.pdb b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.pdb index 8a8fef40..bd00c630 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.pdb and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.Views.pdb differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.dll b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.dll index ad2fbcf6..a2ca43e1 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.dll and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.dll differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.pdb b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.pdb index 410ff8ad..01d24be6 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.pdb and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.Web.pdb differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll index 342b94ae..caa80c29 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb index cc6edffd..933a80e1 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll index 5d86d307..059d3cc6 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb index 559c8a7e..ec0eb778 100644 Binary files a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb and b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb differ diff --git a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml index 167a463f..f297452e 100644 --- a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml +++ b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml @@ -1689,6 +1689,13 @@ ItemID + + + 料號基本資料檔 to ItemNo + + 料號 + + @@ -1725,6 +1732,25 @@ 料號站別工項資料檔 + + + 建構式 + + + + + + 查詢料號站別工項資料檔 + + + + + + 料號站別工項檔 by ID + + MaterialKpID + + 料號站別工項資料檔 by ItemID @@ -1732,6 +1758,18 @@ ItemID + + + 修改料號站別工項資料檔 + + + + + + 新增料號站別工項資料檔 + + + 料號属性代碼基本檔 @@ -3024,6 +3062,13 @@ + + + 更新工單資料Att + + + + @@ -3089,6 +3134,13 @@ 序號 + + + 更新檢驗结果維護 + + + + @@ -3114,7 +3166,7 @@ - + 修改工單資訊-板卡工程資訊 @@ -3227,6 +3279,34 @@ 工單KP資訊資料檔 + + + ByWipNo + + 工單號碼 + + + + + 更新工單KP資訊資料檔 + + + + + + + 更新工單KP資訊資料檔-狀態 + + + + + + + 新增工單KP資訊資料檔 + + + + @@ -3239,6 +3319,13 @@ + + + 更新工單標籤 + + + + @@ -3477,7 +3564,7 @@ - + 修改工單資訊-系統組裝工程資訊 @@ -4419,6 +4506,15 @@ + + + ByWipNo 取流程別 + + 工單號碼 + 變更後ID + 變更前ID + + 根據製程單位獲取指定單一資料 @@ -5837,6 +5933,51 @@ 更新日期 + + + 流程站別資料 + + + + + 流程站別編號 + + + + + 流程編號 + + + + + 流程名稱 + + + + + 站別編號 + + + + + 站別描述 + + + + + 站別順序 + + + + + 站別類型 + + + + + 生產單位名稱 + + WipInfo Select Dto @@ -5872,6 +6013,61 @@ 料號 + + + 工單KP資訊資料檔 DTO + + + + + 工單KP_ID + + + + + 工單ID + + + + + 料號 + + + + + KP料號名稱 + + + + + KP料號NO + + + + + 順序 + + + + + 前置碼 + + + + + 長度 + + + + + 生產單位代號 + + + + + 狀態 A:啟用 S:停用 + + WipInfo Select Dto @@ -9150,6 +9346,11 @@ 料號治具ID + + + 生產單位 + + 料號ID @@ -9195,6 +9396,16 @@ 料號主檔 + + + 製程單位主檔 + + + + + 製程單位主檔 + + SOP文件紀錄 @@ -9330,6 +9541,16 @@ 料號主檔 + + + 製程單位主檔 + + + + + 製程單位主檔 + + 料號属性代碼基本檔 @@ -10290,21 +10511,6 @@ 更新日期 - - - 維修責任單位 - - - - - 維修責任單位ID - - - - - 維修責任單位描述 - - 維修方式資料表 @@ -10935,6 +11141,11 @@ PCB烘烤 + + + PCB加工 + + 錫膏 @@ -11290,6 +11501,11 @@ 工單KP_ID + + + 工單ID + + 料號 @@ -11325,6 +11541,11 @@ 生產單位代號 + + + 狀態 A:啟用 S:停用 + + 建立UserID diff --git a/AMESCoreStudio.WebApi/AMESCoreStudio.WebApi.csproj b/AMESCoreStudio.WebApi/AMESCoreStudio.WebApi.csproj index 149334b3..0d7e23bc 100644 --- a/AMESCoreStudio.WebApi/AMESCoreStudio.WebApi.csproj +++ b/AMESCoreStudio.WebApi/AMESCoreStudio.WebApi.csproj @@ -23,6 +23,7 @@ + diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs index c51138b7..0e987c8a 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialOutfitController.cs @@ -35,7 +35,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES [HttpGet] public async Task>> GetMaterialOutfits() { - return await _context.MaterialOutfits.ToListAsync(); + IQueryable q = _context.MaterialOutfits; + q = q.OrderBy(p => p.MaterialOutfitID); + var MaterialOutfit = await q.ToListAsync(); + return MaterialOutfit; + } /// @@ -45,16 +49,11 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// // GET: api/MaterialOutfits/5 [HttpGet("{id}")] - public async Task> GetMaterialOutfit(int id) + public async Task> GetMaterialOutfit(int id) { - var materialOutfit = await _context.MaterialOutfits.FindAsync(id); - - if (materialOutfit == null) - { - return NotFound(); - } - - return materialOutfit; + IQueryable q = _context.MaterialOutfits; + var result = await q.Where(p => p.MaterialOutfitID == id).ToListAsync(); + return result; } /// @@ -93,60 +92,76 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPut("{id}")] - public async Task PutMaterialOutfit(int id, MaterialOutfit materialOutfit) + public async Task> PutMaterialOutfit(int id, MaterialOutfit MaterialOutfit) { - if (id != materialOutfit.MaterialOutfitID) + ResultModel result = new ResultModel(); + if (id != MaterialOutfit.MaterialOutfitID) { - return BadRequest(); + result.Success = false; + result.Msg = "序號錯誤"; + return result; } - _context.Entry(materialOutfit).State = EntityState.Modified; + _context.Entry(MaterialOutfit).State = EntityState.Modified; try { await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; } - catch (DbUpdateConcurrencyException) + catch (Exception ex) { - if (!MaterialOutfitExists(id)) - { - return NotFound(); - } - else - { - throw; - } + result.Success = false; + result.Msg = ex.InnerException.Message; } - - return NoContent(); + return result; } // POST: api/MaterialOutfits // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPost] - public async Task> PostMaterialOutfit(MaterialOutfit materialOutfit) + public async Task> PostMaterialOutfit(MaterialOutfit MaterialOutfit) { - _context.MaterialOutfits.Add(materialOutfit); - await _context.SaveChangesAsync(); + ResultModel result = new ResultModel(); + Helper helper = new Helper(_context); + MaterialOutfit.MaterialOutfitID = helper.GetIDKey("MaterialOutfitID").Result; - return CreatedAtAction("GetMaterialOutfit", new { id = materialOutfit.MaterialOutfitID }, materialOutfit); + _context.MaterialOutfits.Add(MaterialOutfit); + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; } // DELETE: api/MaterialOutfits/5 [HttpDelete("{id}")] - public async Task> DeleteMaterialOutfit(int id) + public async Task> DeleteMaterialOutfit(int id) { - var materialOutfit = await _context.MaterialOutfits.FindAsync(id); - if (materialOutfit == null) + ResultModel result = new ResultModel(); + var MaterialOutfit = await _context.MaterialOutfits.Where(m => m.MaterialOutfitID == id).FirstOrDefaultAsync(); + if (MaterialOutfit == null) { - return NotFound(); + result.Success = false; + result.Msg = "序號不存在"; + return result; } - _context.MaterialOutfits.Remove(materialOutfit); + _context.MaterialOutfits.Remove(MaterialOutfit); await _context.SaveChangesAsync(); - return materialOutfit; + result.Success = true; + result.Msg = "OK"; + return result; } private bool MaterialOutfitExists(int id) diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs index 02b9766e..28116364 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/MaterialStationsItemController.cs @@ -7,6 +7,8 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + namespace AMESCoreStudio.WebApi.Controllers.AMES { @@ -19,30 +21,43 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES { private readonly AMESContext _context; + /// + /// 建構式 + /// + /// public MaterialStationsItemController(AMESContext context) { _context = context; } + /// + /// 查詢料號站別工項資料檔 + /// + /// // GET: api/MaterialStationsItems [HttpGet] public async Task>> GetMaterialStationsItems() { - return await _context.MaterialStationsItems.ToListAsync(); + IQueryable q = _context.MaterialStationsItems; + q = q.OrderBy(p => p.MsiID); + var MaterialStationsItem = await q.ToListAsync(); + return MaterialStationsItem; + } + + /// + /// 料號站別工項檔 by ID + /// + /// MaterialKpID + /// // GET: api/MaterialStationsItems/5 [HttpGet("{id}")] - public async Task> GetMaterialStationsItem(int id) + public async Task> GetMaterialStationsItem(int id) { - var materialStationsItem = await _context.MaterialStationsItems.FindAsync(id); - - if (materialStationsItem == null) - { - return NotFound(); - } - - return materialStationsItem; + IQueryable q = _context.MaterialStationsItems; + var result = await q.Where(p => p.MsiID == id).ToListAsync(); + return result; } /// @@ -58,64 +73,88 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES return result; } + /// + /// 修改料號站別工項資料檔 + /// + /// // PUT: api/MaterialStationsItems/5 // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPut("{id}")] - public async Task PutMaterialStationsItem(int id, MaterialStationsItem materialStationsItem) + public async Task> PutMaterialStationsItem(int id, MaterialStationsItem MaterialStationsItem) { - if (id != materialStationsItem.MsiID) + ResultModel result = new ResultModel(); + if (id != MaterialStationsItem.MsiID) { - return BadRequest(); + result.Success = false; + result.Msg = "序號錯誤"; + return result; } - _context.Entry(materialStationsItem).State = EntityState.Modified; + _context.Entry(MaterialStationsItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; } - catch (DbUpdateConcurrencyException) + catch (Exception ex) { - if (!MaterialStationsItemExists(id)) - { - return NotFound(); - } - else - { - throw; - } + result.Success = false; + result.Msg = ex.InnerException.Message; } - - return NoContent(); + return result; } + /// + /// 新增料號站別工項資料檔 + /// + /// // POST: api/MaterialStationsItems // To protect from overposting attacks, enable the specific properties you want to bind to, for // more details, see https://go.microsoft.com/fwlink/?linkid=2123754. [HttpPost] - public async Task> PostMaterialStationsItem(MaterialStationsItem materialStationsItem) + public async Task> PostMaterialStationsItem(MaterialStationsItem MaterialStationsItem) { - _context.MaterialStationsItems.Add(materialStationsItem); - await _context.SaveChangesAsync(); + ResultModel result = new ResultModel(); + Helper helper = new Helper(_context); + MaterialStationsItem.MsiID = helper.GetIDKey("MSI_ID").Result; - return CreatedAtAction("GetMaterialStationsItem", new { id = materialStationsItem.MsiID }, materialStationsItem); + _context.MaterialStationsItems.Add(MaterialStationsItem); + try + { + await _context.SaveChangesAsync(); + result.Success = true; + result.Msg = "OK"; + } + catch (Exception ex) + { + result.Success = false; + result.Msg = ex.InnerException.Message; + } + return result; } // DELETE: api/MaterialStationsItems/5 [HttpDelete("{id}")] - public async Task> DeleteMaterialStationsItem(int id) + public async Task> DeleteMaterialStationsItem(int id) { - var materialStationsItem = await _context.MaterialStationsItems.FindAsync(id); - if (materialStationsItem == null) + ResultModel result = new ResultModel(); + var MaterialStationsItem = await _context.MaterialStationsItems.Where(m => m.MsiID == id).FirstOrDefaultAsync(); + if (MaterialStationsItem == null) { - return NotFound(); + result.Success = false; + result.Msg = "序號不存在"; + return result; } - _context.MaterialStationsItems.Remove(materialStationsItem); + _context.MaterialStationsItems.Remove(MaterialStationsItem); await _context.SaveChangesAsync(); - return materialStationsItem; + result.Success = true; + result.Msg = "OK"; + return result; } private bool MaterialStationsItemExists(int id) diff --git a/AMESCoreStudio.WebApi/Models/AMES/MaterialOutfit.cs b/AMESCoreStudio.WebApi/Models/AMES/MaterialOutfit.cs index e3b7f589..dba680e6 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/MaterialOutfit.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/MaterialOutfit.cs @@ -22,12 +22,22 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Display(Name = "料號治具ID")] public int MaterialOutfitID { get; set; } + /// + /// 生產單位 + /// + [Column("UNIT_NO")] + [StringLength(1)] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "製程單位")] + public string UnitNo { get; set; } + /// /// 料號ID /// [DataMember] [Required(ErrorMessage = "{0},不能空白")] - [Display(Name = "料號ID")] + [Display(Name = "料號")] [Column("ITEM_ID")] public int ItemID { get; set; } @@ -36,7 +46,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// [DataMember] [Required(ErrorMessage = "{0},不能空白")] - [Display(Name = "治具NO")] + [Display(Name = "治具代碼")] [Column("OUTFIT_NO")] [StringLength(15)] public string OutfitNo { get; set; } @@ -45,7 +55,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// 站(前段) /// [DataMember] - [Required(ErrorMessage = "{0},不能空白")] [Display(Name = "站(前段)")] [Column("STATION_TYPE")] [StringLength(25)] @@ -96,5 +105,23 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// [ForeignKey("ItemID")] public virtual MaterialItem MaterialItem { get; set; } + + /// + /// 製程單位主檔 + /// + [ForeignKey("UnitNo")] + public virtual AMESCoreStudio.WebApi.Models.BAS.FactoryUnit Unit { get; set; } + + /// + /// 製程單位主檔 + /// + [ForeignKey("RuleStationID")] + public virtual AMESCoreStudio.WebApi.Models.BAS.RuleStation RStation { get; set; } + + /// + /// 製程單位主檔 + /// + //[ForeignKey("RuleStationID")] + //public virtual OutFitInfo RStation { get; set; } } } diff --git a/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs b/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs index 6bc6f3e8..896f5c32 100644 --- a/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs +++ b/AMESCoreStudio.WebApi/Models/AMES/MaterialStationsItem.cs @@ -19,6 +19,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Key] [Column("MSI_ID")] [DataMember] + [Required] public int MsiID { get; set; } /// @@ -27,7 +28,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Column("ITEM_ID")] [DataMember] [Required(ErrorMessage = "{0},不能空白")] - [Display(Name = "料號ID")] + [Display(Name = "料號")] public int ItemID { get; set; } /// @@ -46,6 +47,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Column("RULE_STATION_ID")] [DataMember] [Required] + [Display(Name = "流程站別編號")] public int RuleStationID { get; set; } /// @@ -54,7 +56,6 @@ namespace AMESCoreStudio.WebApi.Models.AMES [Column("STATION_TYPE")] [StringLength(10)] [DataMember] - [Required(ErrorMessage = "{0},不能空白")] [Display(Name = "站(前段)")] public string StationType { get; set; } @@ -126,5 +127,17 @@ namespace AMESCoreStudio.WebApi.Models.AMES /// [ForeignKey("ItemID")] public virtual MaterialItem MaterialItem { get; set; } + + /// + /// 製程單位主檔 + /// + [ForeignKey("UnitNo")] + public virtual AMESCoreStudio.WebApi.Models.BAS.FactoryUnit Unit { get; set; } + + /// + /// 製程單位主檔 + /// + [ForeignKey("RuleStationID")] + public virtual AMESCoreStudio.WebApi.Models.BAS.RuleStation RStation { get; set; } } } diff --git a/AMESCoreStudio.WebApi/Models/AMESContext.cs b/AMESCoreStudio.WebApi/Models/AMESContext.cs index 9188ffdb..ceaaf91c 100644 --- a/AMESCoreStudio.WebApi/Models/AMESContext.cs +++ b/AMESCoreStudio.WebApi/Models/AMESContext.cs @@ -506,12 +506,12 @@ namespace AMESCoreStudio.WebApi /// /// 料號站別工項資料檔 /// - public virtual DbSet MaterialStationsItems { get; set; } + public virtual DbSet MaterialStationsItems { get; set; } /// /// 料號治具資訊資料檔 /// - public virtual DbSet MaterialOutfits { get; set; } + public virtual DbSet MaterialOutfits { get; set; } /// /// 條碼鎖定資料表 diff --git a/AMESCoreStudio.WebApi/appsettings.json b/AMESCoreStudio.WebApi/appsettings.json index 01062367..62ab68b4 100644 --- a/AMESCoreStudio.WebApi/appsettings.json +++ b/AMESCoreStudio.WebApi/appsettings.json @@ -7,8 +7,8 @@ } }, "ConnectionStrings": { - "AMESContext": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.5)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=gdb)));User Id=JHSYS;Password=ASYS666;", - "AMESContext1": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=61.216.68.18)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=jhdb)));User Id=system;Password=admin;" + "AMESContext2": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.5)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=gdb)));User Id=JHSYS;Password=ASYS666;", + "AMESContext": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=61.216.68.18)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=jhdb)));User Id=system;Password=admin;" //"AMESContext": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=61.216.68.18)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=cpadb)));User Id=JHSYS;Password=ASYS666;" }, "AllowedHosts": "*" diff --git a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll index 342b94ae..caa80c29 100644 Binary files a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll and b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.dll differ diff --git a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb index cc6edffd..933a80e1 100644 Binary files a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb and b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.Views.pdb differ diff --git a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll index 5d86d307..059d3cc6 100644 Binary files a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll and b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.dll differ diff --git a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb index 559c8a7e..ec0eb778 100644 Binary files a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb and b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.pdb differ diff --git a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml index 167a463f..f297452e 100644 --- a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml +++ b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml @@ -1689,6 +1689,13 @@ ItemID + + + 料號基本資料檔 to ItemNo + + 料號 + + @@ -1725,6 +1732,25 @@ 料號站別工項資料檔 + + + 建構式 + + + + + + 查詢料號站別工項資料檔 + + + + + + 料號站別工項檔 by ID + + MaterialKpID + + 料號站別工項資料檔 by ItemID @@ -1732,6 +1758,18 @@ ItemID + + + 修改料號站別工項資料檔 + + + + + + 新增料號站別工項資料檔 + + + 料號属性代碼基本檔 @@ -3024,6 +3062,13 @@ + + + 更新工單資料Att + + + + @@ -3089,6 +3134,13 @@ 序號 + + + 更新檢驗结果維護 + + + + @@ -3114,7 +3166,7 @@ - + 修改工單資訊-板卡工程資訊 @@ -3227,6 +3279,34 @@ 工單KP資訊資料檔 + + + ByWipNo + + 工單號碼 + + + + + 更新工單KP資訊資料檔 + + + + + + + 更新工單KP資訊資料檔-狀態 + + + + + + + 新增工單KP資訊資料檔 + + + + @@ -3239,6 +3319,13 @@ + + + 更新工單標籤 + + + + @@ -3477,7 +3564,7 @@ - + 修改工單資訊-系統組裝工程資訊 @@ -4419,6 +4506,15 @@ + + + ByWipNo 取流程別 + + 工單號碼 + 變更後ID + 變更前ID + + 根據製程單位獲取指定單一資料 @@ -5837,6 +5933,51 @@ 更新日期 + + + 流程站別資料 + + + + + 流程站別編號 + + + + + 流程編號 + + + + + 流程名稱 + + + + + 站別編號 + + + + + 站別描述 + + + + + 站別順序 + + + + + 站別類型 + + + + + 生產單位名稱 + + WipInfo Select Dto @@ -5872,6 +6013,61 @@ 料號 + + + 工單KP資訊資料檔 DTO + + + + + 工單KP_ID + + + + + 工單ID + + + + + 料號 + + + + + KP料號名稱 + + + + + KP料號NO + + + + + 順序 + + + + + 前置碼 + + + + + 長度 + + + + + 生產單位代號 + + + + + 狀態 A:啟用 S:停用 + + WipInfo Select Dto @@ -9150,6 +9346,11 @@ 料號治具ID + + + 生產單位 + + 料號ID @@ -9195,6 +9396,16 @@ 料號主檔 + + + 製程單位主檔 + + + + + 製程單位主檔 + + SOP文件紀錄 @@ -9330,6 +9541,16 @@ 料號主檔 + + + 製程單位主檔 + + + + + 製程單位主檔 + + 料號属性代碼基本檔 @@ -10290,21 +10511,6 @@ 更新日期 - - - 維修責任單位 - - - - - 維修責任單位ID - - - - - 維修責任單位描述 - - 維修方式資料表 @@ -10935,6 +11141,11 @@ PCB烘烤 + + + PCB加工 + + 錫膏 @@ -11290,6 +11501,11 @@ 工單KP_ID + + + 工單ID + + 料號 @@ -11325,6 +11541,11 @@ 生產單位代號 + + + 狀態 A:啟用 S:停用 + + 建立UserID diff --git a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/appsettings.json b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/appsettings.json index 413c8ca6..62ab68b4 100644 --- a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/appsettings.json +++ b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/appsettings.json @@ -7,7 +7,7 @@ } }, "ConnectionStrings": { - "AMESContext2": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.5)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=gdb)));User Id=JHSYS;Password=12345;", + "AMESContext2": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.5)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=gdb)));User Id=JHSYS;Password=ASYS666;", "AMESContext": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=61.216.68.18)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=jhdb)));User Id=system;Password=admin;" //"AMESContext": "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=61.216.68.18)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=cpadb)));User Id=JHSYS;Password=ASYS666;" },