diff --git a/AMESCoreStudio.Web/Controllers/JIGController.cs b/AMESCoreStudio.Web/Controllers/JIGController.cs new file mode 100644 index 00000000..e07ea497 --- /dev/null +++ b/AMESCoreStudio.Web/Controllers/JIGController.cs @@ -0,0 +1,654 @@ +using AMESCoreStudio.CommonTools.Result; +using AMESCoreStudio.Web.Models; +using AMESCoreStudio.WebApi.Models.AMES; +using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; +using Microsoft.Extensions.Logging; +using Newtonsoft.Json; +using System.Collections.Generic; +using System.Threading.Tasks; + +namespace AMESCoreStudio.Web.Controllers +{ + public class JIGController : Controller + { + private readonly ILogger<JIGController> _logger; + public readonly IJIG _jigApi; + public readonly IWHS _whsApi; + public readonly IBAS _basApi; + public readonly IPCS _pcsApi; + public readonly ISYS _sysApi; + public readonly IPPS _ppsApi; + private readonly IWebHostEnvironment _env; + + public JIGController(ILogger<JIGController> logger, IJIG jigApi, IWHS whsApi,IBAS basApi, IPCS pcsApi, ISYS sysApi, IPPS ppsApi, IWebHostEnvironment env) + { + _logger = logger; + _jigApi = jigApi; + _whsApi = whsApi; + _basApi = basApi; + _pcsApi = pcsApi; + _sysApi = sysApi; + _ppsApi = ppsApi; + _env = env; + } + + #region + private async Task GetOutfitCommodityInfoesList() + { + var result = await _jigApi.GetOutfitCommodityInfoes(); + + var GroupList = new List<SelectListItem>(); + for (int i = 0; i < result.Count; i++) + { + GroupList.Add(new SelectListItem(result[i].CommodityName, result[i].CommodityID.ToString())); + } + ViewBag.TypesList = GroupList; + } + private async Task GetOutfitVarityInfoesList() + { + var result = await _jigApi.GetOutfitVarityInfoes(); + + var GroupList = new List<SelectListItem>(); + for (int i = 0; i < result.Count; i++) + { + GroupList.Add(new SelectListItem(result[i].VarityName, result[i].VarityID.ToString())); + } + ViewBag.VarityList = GroupList; + } + private async Task GetOutfitVendorInfoesList() + { + var result = await _jigApi.GetOutfitVendorInfoes(); + + var GroupList = new List<SelectListItem>(); + for (int i = 0; i < result.Count; i++) + { + GroupList.Add(new SelectListItem(result[i].VendorName, result[i].VendorID.ToString())); + } + ViewBag.VendorList = GroupList; + } + private async Task GetFactoryList() + { + var result = await _basApi.GetFactoryInfoes(); + + var UnitItems = new List<SelectListItem>(); + for (int i = 0; i < result.Count; i++) + { + UnitItems.Add(new SelectListItem(result[i].FactoryNameCh, result[i].FactoryID.ToString())); + } + ViewBag.Factory = UnitItems; + } + private async Task GetFactoryUnitsList3() + { + var result = await _basApi.GetFactoryUnits(); + + var UnitItems = new List<SelectListItem>(); + for (int i = 0; i < result.Count; i++) + { + UnitItems.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString())); + } + ViewBag.FactoryUnit = UnitItems; + } + private async Task GetStationList() + { + var result = await _basApi.GetStationses(); + + var StationItems = new List<SelectListItem>(); + StationItems.Add(new SelectListItem("N/A", "0")); + for (int i = 0; i < result.Count; i++) + { + StationItems.Add(new SelectListItem(result[i].StationName, result[i].StationID.ToString())); + } + ViewBag.StationList = StationItems; + } + private async Task GetLineList() + { + var result = await _basApi.GetLineInfoes(); + + var LineItems = new List<SelectListItem>(); + LineItems.Add(new SelectListItem("N/A", "0")); + for (int i = 0; i < result.Count; i++) + { + LineItems.Add(new SelectListItem(result[i].LineDesc, result[i].LineID.ToString())); + } + ViewBag.LineList = LineItems; + } + private async Task GetDeptList() + { + var result = await _sysApi.GetDeptInfoes(); + + var DeptItems = new List<SelectListItem>(); + DeptItems.Add(new SelectListItem("N/A", "0")); + for (int i = 0; i < result.Count; i++) + { + DeptItems.Add(new SelectListItem(result[i].DeptName, result[i].DeptID.ToString())); + } + ViewBag.DeptList = DeptItems; + } + private async Task GetUserInfo() + { + var result = await _sysApi.GetUserInfoes(); + + var UserItems = new List<SelectListItem>(); + UserItems.Add(new SelectListItem("N/A", "-1")); + for (int i = 0; i < result.Count; i++) + { + UserItems.Add(new SelectListItem(result[i].UserName, result[i].UserID.ToString())); + } + ViewBag.UserList = UserItems; + } + private async Task GetFactoryUnitsList() + { + var result = await _basApi.GetFactoryUnits(); + + var UnitItems = new List<SelectListItem>(); + UnitItems.Add(new SelectListItem("NA", "0")); + for (int i = 0; i < result.Count; i++) + { + UnitItems.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString())); + } + ViewBag.FactoryUnit = UnitItems; + } + 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; + } + + #endregion + + #region JIG001 設備種類維護相關 + + public IActionResult JIG001() + { + return View(); + } + + //新增頁面 + public IActionResult JIG001C() + { + GetUserID(); + return View(); + } + + //修改页面 + [HttpGet] + public async Task<IActionResult> JIG001UAsync(int id) + { + var result = await _jigApi.GetOutfitCommodityInfo(id); + GetUserID(); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task<IActionResult> JIG001DAsync(int id) + { + var result = await _jigApi.DeleteOutfitCommodityInfo(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task<IActionResult> JIG001CSaveAsync(OutfitCommodityInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PostOutfitCommodityInfo(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("JIG001C", model); + } + + public async Task<IActionResult> JIG001USaveAsync(OutfitCommodityInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PutOutfitCommodityInfo(model.CommodityID, 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("JIG001U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task<IActionResult> GetOutfitCommodityInfoesAsync() + { + var result = await _jigApi.GetOutfitCommodityInfoes(); + + 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<IActionResult> GetOutfitCommodityInfoesByQueryAsync(int TypeFlag, string Status) + { + var result = await _jigApi.GetOutfitCommodityInfoesByQuery(TypeFlag, Status); + + 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 JIG002設備規格維護相關 + + public async Task<IActionResult> JIG002() + { + await GetOutfitCommodityInfoesList(); + return View(); + } + + //新增頁面 + public async Task<IActionResult> JIG002C() + { + await GetOutfitCommodityInfoesList(); + GetUserID(); + return View(); + } + + //修改页面 + [HttpGet] + public async Task<IActionResult> JIG002UAsync(int id) + { + await GetOutfitCommodityInfoesList(); + GetUserID(); + var result = await _jigApi.GetOutfitVarityInfo(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task<IActionResult> JIG002DAsync(int id) + { + var result = await _jigApi.DeleteOutfitVarityInfo(id); + return Json(new Result() { success = true, msg = "" }); + } + + [HttpPost] + public async Task<IActionResult> JIG002CSaveAsync(OutfitVarityInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PostOutfitVarityInfo(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("JIG002C", model); + } + + public async Task<IActionResult> JIG002USaveAsync(OutfitVarityInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PutOutfitVarityInfo(model.VarityID, 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("JIG002U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task<IActionResult> GetOutfitVarityInfoesAsync() + { + var result = await _jigApi.GetOutfitVarityInfoes(); + + 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<IActionResult> GetOutfitVarityInfoesByQueryAsync(int TypeFlag, int CommodityID, string Status) + { + var result = await _jigApi.GetOutfitVarityInfoesByQuery(TypeFlag, CommodityID, Status); + + 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 JIG003設備廠商維護相關 + public IActionResult JIG003() + { + return View(); + } + //新增頁面 + public IActionResult JIG003C(int id) + { + GetUserID(); + return View(); + } + //修改页面 + [HttpGet] + public async Task<IActionResult> JIG003UAsync(int id) + { + var result = await _jigApi.GetOutfitVendorInfo(id); + GetUserID(); + + if (result.Count == 0) + { + return View(); + } + + return View(result[0]); + } + public async Task<IActionResult> JIG003DAsync(int id) + { + var result = await _jigApi.DeleteOutfitVendorInfo(id); + return Json(new Result() { success = true, msg = "" }); + } + [HttpPost] + public async Task<IActionResult> JIG003CSaveAsync(OutfitVendorInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PostOutfitVendorInfo(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("JIG003C", model); + } + public async Task<IActionResult> JIG003USaveAsync(OutfitVendorInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PutOutfitVendorInfo(model.VendorID, 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("JIG003U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task<IActionResult> GetOutfitVendorInfoesAsync() + { + var result = await _jigApi.GetOutfitVendorInfoes(); + + 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 JIG004巡檢結果維護相關 + + public async Task<IActionResult> JIG004() + { + await GetOutfitCommodityInfoesList(); + return View(); + } + //修改页面 + [HttpGet] + public async Task<IActionResult> JIG004C(int id) + { + GetUserID(); + await GetFactoryList(); + await GetOutfitCommodityInfoesList(); + await GetOutfitVarityInfoesList(); + await GetOutfitVendorInfoesList(); + return View(); + } + public async Task<IActionResult> JIG004UAsync(int id) + { + + GetUserID(); + await GetFactoryList(); + await GetOutfitCommodityInfoesList(); + await GetOutfitVarityInfoesList(); + await GetOutfitVendorInfoesList(); + var result = await _jigApi.GetOutfitInfo(id); + + if (result.Count == 0) + { + return View(); + } + + return View(result[0]); + } + public async Task<IActionResult> JIG004DAsync(int id) + { + var result = await _jigApi.DeleteOutfitInfo(id); + return Json(new Result() { success = true, msg = "" }); + } + [HttpPost] + public async Task<IActionResult> JIG004CSaveAsync(OutfitInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + var commodity = await _jigApi.GetOutfitCommodityInfo(model.CommodityID); + model.TypeFlag = commodity[0].TypeFlag; + + result = await _jigApi.PostOutfitInfo(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("JIG004C", model); + } + public async Task<IActionResult> JIG004USaveAsync(OutfitInfo model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _jigApi.PutOutfitInfo(model.OutfitID, 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("JIG004U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task<IActionResult> GetOutfitInfoesAsync() + { + + var result = await _jigApi.GetOutfitInfoes(); + + 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<IActionResult> GetOutfitInfoesByQueryAsync(int TypeFlag, int CommodityID, int VarityID, string Status, string QANo, string PartNo) + { + + + if (string.IsNullOrWhiteSpace(PartNo)) + PartNo = "*"; + if (string.IsNullOrWhiteSpace(QANo)) + QANo = "*"; + + var result = await _jigApi.GetOutfitInfoesByQuery( TypeFlag, CommodityID, VarityID, Status, QANo, PartNo); + + 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/Controllers/SPCController.cs b/AMESCoreStudio.Web/Controllers/SPCController.cs index 6afa040a..6c08cea5 100644 --- a/AMESCoreStudio.Web/Controllers/SPCController.cs +++ b/AMESCoreStudio.Web/Controllers/SPCController.cs @@ -299,7 +299,7 @@ namespace AMESCoreStudio.Web.Controllers result = await _spcApi.PostInspectionType(JsonConvert.SerializeObject(model)); - if (!result.Success) + if (result.Success) { var _msg = "添加成功!"; return RedirectToAction("Refresh", "Home", new { msg = _msg }); @@ -327,7 +327,7 @@ namespace AMESCoreStudio.Web.Controllers result = await _spcApi.PutInspectionType(model.InspectionTypeID, JsonConvert.SerializeObject(model)); - if (!result.Success) + if (result.Success) { var _msg = "修改成功!"; return RedirectToAction("Refresh", "Home", new { msg = _msg }); @@ -411,7 +411,7 @@ namespace AMESCoreStudio.Web.Controllers result = await _spcApi.PostInspectionForm(JsonConvert.SerializeObject(model)); - if (!result.Success) + if (result.Success) { var _msg = "添加成功!"; return RedirectToAction("Refresh", "Home", new { msg = _msg }); @@ -439,7 +439,7 @@ namespace AMESCoreStudio.Web.Controllers result = await _spcApi.PutInspectionForm(model.InspectionFormID, JsonConvert.SerializeObject(model)); - if (!result.Success) + if (result.Success) { var _msg = "修改成功!"; return RedirectToAction("Refresh", "Home", new { msg = _msg }); diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IJIG.cs b/AMESCoreStudio.Web/HttpApis/AMES/IJIG.cs new file mode 100644 index 00000000..5c0d6c54 --- /dev/null +++ b/AMESCoreStudio.Web/HttpApis/AMES/IJIG.cs @@ -0,0 +1,242 @@ +using System.Collections.Generic; +using WebApiClient; +using WebApiClient.Attributes; +using AMESCoreStudio.WebApi; +using Microsoft.AspNetCore.Mvc; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.WebApi.Models.BAS; +using AMESCoreStudio.CommonTools.Result; +using AMESCoreStudio.WebApi.DTO.AMES; + +namespace AMESCoreStudio.Web +{ + [JsonReturn] + public interface IJIG : IHttpApi + { + #region JIG001 設備種類資料維護 + + /// <summary> + /// 新增設備種類 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPost("api/OutfitCommodityInfoes")] + ITask<ResultModel<OutfitCommodityInfo>> PostOutfitCommodityInfo([FromBody, RawJsonContent] string model); + + /// <summary> + /// 更新設備種類 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPut("api/OutfitCommodityInfoes/{id}")] + ITask<ResultModel<OutfitCommodityInfo>> PutOutfitCommodityInfo(int id, [FromBody, RawJsonContent] string model); + + /// <summary> + /// 刪除設備種類 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpDelete("api/OutfitCommodityInfoes/{id}")] + ITask<ResultModel<string>> DeleteOutfitCommodityInfo(int id); + + /// <summary> + /// 根據ID獲取指定設備種類資料 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitCommodityInfoes/{id}")] + ITask<List<OutfitCommodityInfo>> GetOutfitCommodityInfo(int id); + + /// <summary> + /// 獲取設備種類資料 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitCommodityInfoes")] + ITask<List<OutfitCommodityInfo>> GetOutfitCommodityInfoes(); + + /// <summary> + /// 獲取設備種類BY QUERY + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitCommodityInfoes/Query/{TypeFlag}/{Status}")] + ITask<List<OutfitCommodityInfo>> GetOutfitCommodityInfoesByQuery(int TypeFlag, string Status); + + #endregion + + #region JIG002 設備規格資料維護 + + /// <summary> + /// 新增設備規格 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPost("api/OutfitVarityInfoes")] + ITask<ResultModel<OutfitVarityInfo>> PostOutfitVarityInfo([FromBody, RawJsonContent] string model); + + /// <summary> + /// 更新設備規格 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPut("api/OutfitVarityInfoes/{id}")] + ITask<ResultModel<OutfitVarityInfo>> PutOutfitVarityInfo(int id, [FromBody, RawJsonContent] string model); + + /// <summary> + /// 刪除設備規格 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpDelete("api/OutfitVarityInfoes/{id}")] + ITask<ResultModel<string>> DeleteOutfitVarityInfo(int id); + + /// <summary> + /// 根據ID獲取指定設備規格資料 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitVarityInfoes/{id}")] + ITask<List<OutfitVarityInfo>> GetOutfitVarityInfo(int id); + + /// <summary> + /// 獲取設備規格資料 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitVarityInfoes")] + ITask<List<OutfitVarityInfo>> GetOutfitVarityInfoes(); + + /// <summary> + /// 獲取設備種類BY QUERY + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitVarityInfoes/Query/{TypeFlag}/{CommodityID}/{Status}")] + ITask<List<OutfitVarityInfo>> GetOutfitVarityInfoesByQuery(int TypeFlag, int CommodityID, string Status); + + #endregion + + #region JIG003 設備廠商資料維護 + + /// <summary> + /// 新增設備廠商 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPost("api/OutfitVendorInfoes")] + ITask<ResultModel<OutfitVendorInfo>> PostOutfitVendorInfo([FromBody, RawJsonContent] string model); + + /// <summary> + /// 更新設備廠商 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPut("api/OutfitVendorInfoes/{id}")] + ITask<ResultModel<OutfitVendorInfo>> PutOutfitVendorInfo(int id, [FromBody, RawJsonContent] string model); + + /// <summary> + /// 刪除設備廠商 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpDelete("api/OutfitVendorInfoes/{id}")] + ITask<string> DeleteOutfitVendorInfo(int id); + + /// <summary> + /// 根據ID獲取指定設備廠商資料 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitVendorInfoes/{id}")] + ITask<List<OutfitVendorInfo>> GetOutfitVendorInfo(int id); + + /// <summary> + /// 獲取設備廠商資料 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitVendorInfoes")] + ITask<List<OutfitVendorInfo>> GetOutfitVendorInfoes(); + + #endregion + + #region JIG004 設備基本數據維護 + + /// <summary> + /// 新增設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPost("api/OutfitInfoes")] + ITask<ResultModel<OutfitInfo>> PostOutfitInfo([FromBody, RawJsonContent] string model); + + /// <summary> + /// 更新設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPut("api/OutfitInfoes/{id}")] + ITask<ResultModel<OutfitInfo>> PutOutfitInfo(int id, [FromBody, RawJsonContent] string model); + + /// <summary> + /// 更新設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPut("api/InspectionResultDetails/{id}")] + ITask<ResultModel<InspectionResultDetail>> PutInspectionResultDetail(int id, [FromBody, RawJsonContent] string model); + + + /// <summary> + /// 刪除設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpDelete("api/OutfitInfoes/{id}")] + ITask<ResultModel<string>> DeleteOutfitInfo(int id); + + /// <summary> + /// 根據ID獲取指定設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitInfoes/{id}")] + ITask<List<OutfitInfo>> GetOutfitInfo(int id); + + /// <summary> + /// 獲取設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitInfoes")] + ITask<List<OutfitInfo>> GetOutfitInfoes(); + + /// <summary> + /// 根据設備基本數據 + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/OutfitInfoes/Query/{TypeFlag}/{CommodityID}/{VarityID}/{Status}/{QANo}/{PartNo}")] + ITask<List<OutfitInfo>> GetOutfitInfoesByQuery(int TypeFlag, int CommodityID, int VarityID, string Status, string QANo, string PartNo); + + #endregion + + + + #region JIG006 巡檢結果維護 + + /// <summary> + /// 新增巡檢結果Detail + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPost("api/InspectionResultDetails")] + ITask<ResultModel<InspectionResultDetail>> PostInspectionResultDetail([FromBody, RawJsonContent] string model); + + /// <summary> + /// 新增巡檢結果Blob + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpPost("api/InspectionResultBlobs")] + ITask<ResultModel<InspectionResultBlob>> PostInspectionResultBlob([FromBody, RawJsonContent] string model); + + /// <summary> + /// 獲取指定巡檢表單Blob資料By Query + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/InspectionResultBlobs/Query/{id}/{itemID}")] + ITask<List<InspectionResultBlob>> GetInspectionResultBlobsByQuery(int id, int itemID); + + + /// <summary> + /// 根據ID獲取指定巡檢結果Details + /// </summary> + /// <returns></returns> + [WebApiClient.Attributes.HttpGet("api/InspectionResultDetails/{id}")] + ITask<List<InspectionResultDetail>> GetInspectionResultDetails(int id); + + + + + #endregion + + + + } +} diff --git a/AMESCoreStudio.Web/Views/JIG/JIG001.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG001.cshtml new file mode 100644 index 00000000..e8187d87 --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG001.cshtml @@ -0,0 +1,201 @@ +@{ + ViewData["Title"] = "設備種類資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +<div class="layui-card"> + <div class="layui-card-header"> + <div class="layui-form"> + <div class="layui-form-item "> + <div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> + </div> + </div> + </div> + <div class="layui-card-body"> + <div class="layui-form" style="margin-bottom:5px;"> + <div class="layui-form-item"> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">種類歸屬</label> + <div class="layui-input-inline"> + <select name="TypeFlag" id="TypeFlag" class="custom-select col-sm-4"> + <option value="-99">全部</option> + <option value="0">設備</option> + <option value="1">料件</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">是否有效</label> + <div class="layui-input-inline"> + <select name="Status" id="Status" class="custom-select col-sm-4"> + <option value="A">可用</option> + <option value="S">停用</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-left:0px;"> + <div class="layui-btn-group"> + <button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit"> + <i class="layui-icon layui-icon-sm"></i> + </button> + </div> + </div> + </div> + </div> + <table class="layui-hide" id="test" lay-filter="test"></table> + </div> +</div> + +@section Scripts{ + <script type="text/javascript"> + //监听表单提交事件 + //hg.form.onsubmit('querysubmit', function (data) { + // table && table.reload(data); + //}); + var tableCols = [[ + { + field: 'commodityID', + width: 80, + title: '#' + }, + { + field: 'commodityNo', + title: '種類代碼', + sort: true + }, + { + field: 'commodityName', + title: '種類名稱', + sort: true + }, + { + field: 'commodityEn', + title: '種類英文名稱' + }, + { + field: 'alertForeDays', + title: '保養預警提前天數' + }, + { + field: 'useLimitDays', + title: '累計天數' + }, + { + field: 'typeFlag', + title: '種類歸屬', + templet: function (d) { + var str = ''; + if (d.typeFlag == 0) + str = '設備/料件'; + else + str = '耗材'; + return str + } + }, + { + field: 'status', + title: '狀態', + templet: function (d) { + var str = ''; + if (d.status == "A") + str = '啟用'; + else + str = '停用'; + return str + } + }, + { + field: 'smtFlag', + title: '特殊種類', + templet: function (d) { + var str = ''; + if (d.smtFlag == "X") + str = '錫膏'; + else if (d.smtFlag == "H") + str = '紅膠'; + else if (d.smtFlag == "G") + str = '鋼網'; + return str + } + }, + { + field: 'right', + width: 200, + title: '操作', + fixed: 'right', + templet: function (d) { + var btn = '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a>'; + if (d.status == "A") + btn += ' <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">停用</a>'; + else + btn += ' <a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="del">啟用</a>'; + return btn + //return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' + } + }] + ]; + + //通过行tool编辑,lay-event="edit" + function edit(obj) { + if (obj.data.commodityID) { + hg.open('修改設備種類', '/JIG/JIG001U/' + obj.data.commodityID, 640,320); + } + } + + //通过行tool删除,lay-event="del" + function del(obj) { + var status; + if (obj.data.status=="A") + status = "停用"; + else + status = "啟用"; + + if (obj.data.commodityID) { + hg.confirm("設備種類:" + obj.data.commodityName + ",确定要" + status+"吗?", function () { + $.ajax({ + url: '/JIG/JIG001D', + data: { id: obj.data.commodityID }, + type: 'POST', + success: function (data) { + if (data.success) { + obj.del(); //只删本地数据 + hg.msghide(status + "成功!"); + } + else { + hg.msg(data.msg); + } + }, + error: function () { + hg.msg("网络请求失败!"); + } + }); + }); + } + } + var toolbar = [{ + text: '新增', + layuiicon: '', + class: 'layui-btn-normal', + handler: function () { + hg.open('新增設備種類', '/JIG/JIG001C', 640, 320); + + } + }]; + + ////搜索 + $('#querysubmit').click(function () { + hg.msghide("刷新数据!"); + tt(); + }); + + var table; + $(function () { + tt(); + }); + //基本数据表格 + function tt() { + table = hg.table.datatable('test', '設備種類', '/JIG/GetOutfitCommodityInfoesByQuery?TypeFlag=' + $("#TypeFlag").val() + '&Status=' + $("#Status").val(), {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); + } + + </script> +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/JIG/JIG001C.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG001C.cshtml new file mode 100644 index 00000000..bc7d2219 --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG001C.cshtml @@ -0,0 +1,100 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo + + +@{ ViewData["Title"] = "SPC001C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG001CSave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="CommodityID" value="0" /> + <input type="hidden" asp-for="CreateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="Status" value="A" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityNo" class="control-label col-sm-3"></label> + <input asp-for="CommodityNo" class="form-control col-sm-9" /> + <span asp-validation-for="CommodityNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityName" class="control-label col-sm-3"></label> + <input asp-for="CommodityName" class="form-control col-sm-9" /> + <span asp-validation-for="CommodityName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityEn" class="control-label col-sm-3"></label> + <input asp-for="CommodityEn" class="form-control col-sm-9" /> + <span asp-validation-for="CommodityEn" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="AlertForeDays" class="control-label col-sm-3"></label> + <input asp-for="AlertForeDays" class="form-control col-sm-9" /> + <span asp-validation-for="AlertForeDays" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="UseLimitDays" class="control-label col-sm-3"></label> + <input asp-for="UseLimitDays" class="form-control col-sm-9" /> + <span asp-validation-for="UseLimitDays" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="TypeFlag" class="control-label col-sm-3"></label> + <select asp-for="TypeFlag" class="custom-select col-sm-9"> + <option value="0">設備</option> + <option value="1">料件</option> + </select> + <span asp-validation-for="Status" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="StorageFlag" class="control-label col-sm-3"></label> + <select asp-for="StorageFlag" class="custom-select col-sm-9"> + <option value="Y">是</option> + <option value="N">否</option> + </select> + <span asp-validation-for="StorageFlag" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="SmtFlag" class="control-label col-sm-3"></label> + <select asp-for="SmtFlag" class="custom-select col-sm-9"> + <option value="">NA</option> + <option value="X">錫膏</option> + <option value="H">紅膠</option> + <option value="G">鋼網</option> + </select> + <span asp-validation-for="StorageFlag" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + +<script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); +</script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG001U.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG001U.cshtml new file mode 100644 index 00000000..00a3003e --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG001U.cshtml @@ -0,0 +1,107 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo + + +@{ ViewData["Title"] = "SPC001U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG001USave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="CommodityID" /> + <input type="hidden" asp-for="CreateUserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityNo" class="control-label col-sm-3"></label> + <input asp-for="CommodityNo" class="form-control col-sm-9" /> + <span asp-validation-for="CommodityNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityName" class="control-label col-sm-3"></label> + <input asp-for="CommodityName" class="form-control col-sm-9" /> + <span asp-validation-for="CommodityName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityEn" class="control-label col-sm-3"></label> + <input asp-for="CommodityEn" class="form-control col-sm-9" /> + <span asp-validation-for="CommodityEn" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="AlertForeDays" class="control-label col-sm-3"></label> + <input asp-for="AlertForeDays" class="form-control col-sm-9" /> + <span asp-validation-for="AlertForeDays" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="UseLimitDays" class="control-label col-sm-3"></label> + <input asp-for="UseLimitDays" class="form-control col-sm-9" /> + <span asp-validation-for="UseLimitDays" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="TypeFlag" class="control-label col-sm-3"></label> + <select asp-for="TypeFlag" class="custom-select col-sm-9"> + <option value="0">設備</option> + <option value="1">料件</option> + </select> + <span asp-validation-for="Status" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="StorageFlag" class="control-label col-sm-3"></label> + <select asp-for="StorageFlag" class="custom-select col-sm-9"> + <option value="Y">是</option> + <option value="N">否</option> + </select> + <span asp-validation-for="StorageFlag" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="SmtFlag" class="control-label col-sm-3"></label> + <select asp-for="SmtFlag" class="custom-select col-sm-9"> + <option value="">NA</option> + <option value="X">錫膏</option> + <option value="H">紅膠</option> + <option value="G">鋼網</option> + </select> + <span asp-validation-for="StorageFlag" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Status" class="control-label col-sm-3"></label> + <select asp-for="Status" class="custom-select col-sm-9"> + <option value="A">是</option> + <option value="S">否</option> + </select> + <span asp-validation-for="Status" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + <script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); + </script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG002.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG002.cshtml new file mode 100644 index 00000000..a70d83e6 --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG002.cshtml @@ -0,0 +1,243 @@ +@{ + ViewData["Title"] = "設備規格資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +<div class="layui-card"> + <div class="layui-card-header"> + <div class="layui-form"> + <div class="layui-form-item "> + <div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> + </div> + </div> + </div> + <div class="layui-card-body"> + <div class="layui-form" style="margin-bottom:5px;"> + <div class="layui-form-item"> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">種類歸屬</label> + <div class="layui-input-inline" style="width:100px;"> + <select lay-filter="TypeFlag" name="TypeFlag" id="TypeFlag" style="width:100px;"> + <option value="-99">全部</option> + <option value="0">設備</option> + <option value="1">料件</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">設備種類</label> + <div class="layui-input-inline"> + <select name="Commodity" id="Commodity" asp-items="@ViewBag.TypesList" class="custom-select col-sm-2"> + <option value="-99">請選擇</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-right:0px;"> + <label class="layui-inline layui-form-label">是否有效</label> + <div class="layui-input-inline" style="width:80px;"> + <select name="Status" id="Status" style="width:80px;"> + <option value="A">可用</option> + <option value="S">停用</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-left:0px;"> + <div class="layui-btn-group"> + <button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit"> + <i class="layui-icon layui-icon-sm"></i> + </button> + </div> + </div> + </div> + </div> + <table class="layui-hide" id="test" lay-filter="test"></table> + </div> +</div> + +@section Scripts{ + <script type="text/javascript"> + //监听表单提交事件 + //hg.form.onsubmit('querysubmit', function (data) { + // table && table.reload(data); + //}); + var tableCols = [[ + { + field: 'varityID', + width: 80, + title: '#' + }, + { + field: 'varityNo', + title: '規格代碼' + }, + { + field: 'varityName', + title: '規格名稱' + }, + { + field: 'safeStock', + title: '安全庫存數量' + }, + { + field: 'useLimitTimes', + title: '預定試用次數' + }, + { + field: 'right', + width: 200, + title: '操作', + fixed: 'right', + templet: function (d) { + var btn = '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a>'; + if (d.status == "A") + btn += ' <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">停用</a>'; + else + btn += ' <a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="del">啟用</a>'; + return btn + //return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' + } + }] + ]; + + //通过行tool编辑,lay-event="edit" + function edit(obj) { + if (obj.data.varityID) { + hg.open('修改設備規格', '/JIG/JIG002U/' + obj.data.varityID, 640,320); + } + } + + //通过行tool删除,lay-event="del" + function del(obj) { + var status; + if (obj.data.status == "A") + status = "停用"; + else + status = "啟用"; + if (obj.data.varityID) { + hg.confirm("設備規格:" + obj.data.varityName + ",确定要" + status +"吗?", function () { + $.ajax({ + url: '/JIG/JIG002D', + data: { id: obj.data.varityID }, + type: 'POST', + success: function (data) { + if (data.success) { + obj.del(); //只删本地数据 + hg.msghide(status +"成功!"); + } + else { + hg.msg(data.msg); + } + }, + error: function () { + hg.msg("网络请求失败!"); + } + }); + }); + } + } + var toolbar = [{ + text: '新增', + layuiicon: '', + class: 'layui-btn-normal', + handler: function () { + hg.open('新增設備規格', '/JIG/JIG002C', 640, 320); + + } + } + ]; + + ////搜索 + $('#querysubmit').click(function () { + + hg.msghide("刷新数据!"); + tt(); + + }); + + //$("#TypeFlag").change(function () { + // alert("123"); + // var data = $("#TypeFlag").val(); + // getCommodityByType(data); + //}); + layui.use(['form', 'layer', 'laydate'], function () { + form = layui.form; + form.on('select(TypeFlag)', function (data) { + var data = $("#TypeFlag").val(); + console.info(data); + getCommodityByType(data); + }); + + }); + + function getCommodityByType(data) { + var TypeFlag = $("#TypeFlag").val(); + $.ajax({ + url: "/JIG/GetOutfitCommodityInfoesByQuery?TypeFlag=" + data +"&Status=A", + dataType: 'json', + //data: { id: data }, + contentType: "application/json", + type: 'get', + success: function (result) { + if (result.data) { + $("#Commodity").empty(); + var count = 0; + $('#Commodity').append(new Option("全部", "-99")); + //if (TypeFlag != "*") { + // $.each(result.data, function (index, item) { + // if (item.typeFlag == data) { + // $('#Commodity').append(new Option(item.exceptionClassName, item.exceptionClassNo));//修改參數 + // count = count + 1; + // } + // }); + //} + //else { + // $.each(result.data, function (index, item) { + // $('#Commodity').append(new Option(item.commodityName, item.commodityID));//修改參數 + // }); + //} + $.each(result.data, function (index, item) { + $('#Commodity').append(new Option(item.commodityName, item.commodityID)); + count = count + 1; + }); + if (count == 0) { + $("#Commodity").empty(); + $('#Commodity').append(new Option("無選項", "")); + + } + } + else { + $("#Commodity").empty(); + $('#Commodity').append(new Option("無選項", "")); + } + layui.form.render("select"); + } + }); + }; + + ////搜索 + $('#querysubmit').click(function () { + //console.log('#btnSearch'); + //var itemNo = $("#itemNo").val(); + //var itemNo = $("#itemNo").val(); + //if (itemNo) { + hg.msghide("刷新数据!"); + tt(); + //} + //else { + // alert("請選擇料號!!!!"); + //} + //return false; + + }); + + var table; + $(function () { + tt(); + }); + //基本数据表格 + function tt() { + table = hg.table.datatable('test', '設備規格維護', '/JIG/GetOutfitVarityInfoesByQuery?TypeFlag=' + $("#TypeFlag").val() + '&CommodityID=' + $("#Commodity").val() + '&Status=' + $("#Status").val(), {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); + } + + </script> +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/JIG/JIG002C.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG002C.cshtml new file mode 100644 index 00000000..7ca2889e --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG002C.cshtml @@ -0,0 +1,84 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo + + +@{ ViewData["Title"] = "SPC002C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG002CSave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="VarityID" value="0" /> + <input type="hidden" asp-for="CreateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="Status" value="A" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityID" class="control-label col-sm-3"></label> + <select asp-for="CommodityID" asp-items="@ViewBag.TypesList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VarityNo" class="control-label col-sm-3"></label> + <input asp-for="VarityNo" class="form-control col-sm-9" /> + <span asp-validation-for="VarityNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VarityName" class="control-label col-sm-3"></label> + <input asp-for="VarityName" class="form-control col-sm-9" /> + <span asp-validation-for="VarityName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="SafeStock" class="control-label col-sm-3"></label> + <input asp-for="SafeStock" class="form-control col-sm-9" /> + <span asp-validation-for="SafeStock" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="UseLimitTimes" class="control-label col-sm-3"></label> + <input asp-for="UseLimitTimes" class="form-control col-sm-9" /> + <span asp-validation-for="UseLimitTimes" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + @*<div class="form-group form-inline my-sm-1"> + <label asp-for="Status" class="control-label col-sm-3"></label> + <select asp-for="Status" class="custom-select col-sm-9"> + <option value="A">可用</option> + <option value="S">停用</option> + </select> + <span asp-validation-for="Status" class="text-danger offset-sm-3 my-sm-1"></span> + </div>*@ + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + +<script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); +</script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG002U.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG002U.cshtml new file mode 100644 index 00000000..4f770999 --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG002U.cshtml @@ -0,0 +1,84 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo + + +@{ ViewData["Title"] = "SPC002U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG002USave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="VarityID" /> + <input type="hidden" asp-for="CreateUserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="Status" value="A" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityID" class="control-label col-sm-3"></label> + <select asp-for="CommodityID" asp-items="@ViewBag.TypesList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VarityNo" class="control-label col-sm-3"></label> + <input asp-for="VarityNo" class="form-control col-sm-9" /> + <span asp-validation-for="VarityNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VarityName" class="control-label col-sm-3"></label> + <input asp-for="VarityName" class="form-control col-sm-9" /> + <span asp-validation-for="VarityName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="SafeStock" class="control-label col-sm-3"></label> + <input asp-for="SafeStock" class="form-control col-sm-9" /> + <span asp-validation-for="SafeStock" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="UseLimitTimes" class="control-label col-sm-3"></label> + <input asp-for="UseLimitTimes" class="form-control col-sm-9" /> + <span asp-validation-for="UseLimitTimes" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Status" class="control-label col-sm-3"></label> + <select asp-for="Status" class="custom-select col-sm-9"> + <option value="A">可用</option> + <option value="S">停用</option> + </select> + <span asp-validation-for="Status" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + <script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); + </script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG003.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG003.cshtml new file mode 100644 index 00000000..cc54664c --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG003.cshtml @@ -0,0 +1,102 @@ +@{ + ViewData["Title"] = "設備廠商資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +<div class="layui-card"> + <div class="layui-card-header"> + <div class="layui-form"> + <div class="layui-form-item "> + <div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> + </div> + </div> + </div> + <div class="layui-card-body"> + <table class="layui-hide" id="test" lay-filter="test"></table> + </div> +</div> + +@section Scripts{ + <script type="text/javascript"> + //监听表单提交事件 + hg.form.onsubmit('querysubmit', function (data) { + table && table.reload(data); + }); + var tableCols = [[ + { + field: 'vendorID', + width: 80, + title: '#' + }, + { + field: 'vendorName', + title: '廠商名稱' + }, + { + field: 'telNo', + title: '連絡電話' + }, + { + field: 'address', + title: '地址' + }, + { + field: 'memo', + title: '備註' + }, + { + field: 'right', + width: 200, + title: '操作', + fixed: 'right', + templet: function (d) { + return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' + } + }] + ]; + + //通过行tool编辑,lay-event="edit" + function edit(obj) { + if (obj.data.vendorID) { + hg.open('修改設備廠商', '/JIG/JIG003U/' + obj.data.vendorID, 640,320); + } + } + + //通过行tool删除,lay-event="del" + function del(obj) { + if (obj.data.vendorID) { + hg.confirm("設備廠商:" + obj.data.vendorName + ",确定要删除吗?", function () { + $.ajax({ + url: '/JIG/JIG003D', + data: { id: obj.data.vendorID }, + type: 'POST', + success: function (data) { + if (data.success) { + obj.del(); //只删本地数据 + hg.msghide("删除成功!"); + } + else { + hg.msg(data.msg); + } + }, + error: function () { + hg.msg("网络请求失败!"); + } + }); + }); + } + } + var toolbar = [{ + text: '新增', + layuiicon: '', + class: 'layui-btn-normal', + handler: function () { + hg.open('新增設備廠商', '/JIG/JIG003C', 640, 320); + + } + } + ]; + //基本数据表格 + var table = hg.table.datatable('test', '設備廠商維護', '/JIG/GetOutfitVendorInfoes', {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); + </script> +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/JIG/JIG003C.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG003C.cshtml new file mode 100644 index 00000000..27b46578 --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG003C.cshtml @@ -0,0 +1,68 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo + + +@{ ViewData["Title"] = "SPC003C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG003CSave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="VendorID" value="0" /> + <input type="hidden" asp-for="CreateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="VendorName" class="control-label col-sm-3"></label> + <input asp-for="VendorName" class="form-control col-sm-9" /> + <span asp-validation-for="VendorName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="TelNo" class="control-label col-sm-3"></label> + <input asp-for="TelNo" class="form-control col-sm-9" /> + <span asp-validation-for="TelNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Address" class="control-label col-sm-3"></label> + <input asp-for="Address" class="form-control col-sm-9" /> + <span asp-validation-for="Address" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Memo" class="control-label col-sm-3"></label> + <input asp-for="Memo" class="form-control col-sm-9" /> + <span asp-validation-for="Memo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + +<script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); +</script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG003U.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG003U.cshtml new file mode 100644 index 00000000..4f88156d --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG003U.cshtml @@ -0,0 +1,68 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo + + +@{ ViewData["Title"] = "SPC003U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG003USave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="VendorID" /> + <input type="hidden" asp-for="CreateUserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="VendorName" class="control-label col-sm-3"></label> + <input asp-for="VendorName" class="form-control col-sm-9" /> + <span asp-validation-for="VendorName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="TelNo" class="control-label col-sm-3"></label> + <input asp-for="TelNo" class="form-control col-sm-9" /> + <span asp-validation-for="TelNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Address" class="control-label col-sm-3"></label> + <input asp-for="Address" class="form-control col-sm-9" /> + <span asp-validation-for="Address" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Memo" class="control-label col-sm-3"></label> + <input asp-for="Memo" class="form-control col-sm-9" /> + <span asp-validation-for="Memo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + <script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); + </script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG004.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG004.cshtml new file mode 100644 index 00000000..17942a31 --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG004.cshtml @@ -0,0 +1,293 @@ +@{ + ViewData["Title"] = "設備基本數據維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +<div class="layui-card"> + <div class="layui-card-header"> + <div class="layui-form"> + <div class="layui-form-item "> + <div class="layui-inline"><i class="fa fa-file-text-o fa-fw"></i> @ViewBag.Title</div> + </div> + </div> + </div> + <div class="layui-card-body"> + <div class="layui-form" style="margin-bottom:5px;"> + <div class="layui-form-item"> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">種類歸屬</label> + <div class="layui-input-inline" style="width:90px"> + <select lay-filter="TypeFlag" name="TypeFlag" id="TypeFlag" style="width:90px"> + <option value="-99">全部</option> + <option value="0">設備</option> + <option value="1">料件</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">設備種類</label> + <div class="layui-input-inline" style="width:120px"> + <select lay-filter="Commodity" name="Commodity" id="Commodity" asp-items="@ViewBag.TypesList" style="width:120px"> + <option value="-99">全部</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">設備規格</label> + <div class="layui-input-inline" > + <select name="Varity" id="Varity" > + <option value="-99">全部</option> + </select> + </div> + </div> + </div> + <div class="layui-form-item"> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">管理編號</label> + <div class="layui-input-inline"> + <input type="text" name="QANo" id="QANo" placeholder="请输入管理編號" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">財產名稱</label> + <div class="layui-input-inline" > + <input type="text" name="PartNo" id="PartNo" placeholder="请输入財產名稱" autocomplete="off" class="layui-input"> + </div> + </div> + <div class="layui-inline" style="margin-right:5px;"> + <label class="layui-inline layui-form-label">是否有效</label> + <div class="layui-input-inline" style="width:80px"> + <select name="Status" id="Status" style="width:80px"> + <option value="*">全部</option> + <option value="A">有效</option> + <option value="S">無效</option> + </select> + </div> + </div> + <div class="layui-inline" style="margin-left:0px;"> + <div class="layui-btn-group"> + <button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit"> + <i class="layui-icon layui-icon-sm"></i> + </button> + </div> + </div> + </div> + </div> + <table class="layui-hide" id="test" lay-filter="test"></table> + </div> +</div> + +@section Scripts{ + <script type="text/javascript"> + var tableCols = [[ + { + field: 'outfitID', + width: 80, + title: '#' + }, + { + field: 'outfitNo', + title: '設備編碼' + }, + { + field: 'qaNo', + title: '管理編號' + }, + { + field: 'partNo', + title: '財產名稱' + }, + { + field: 'statusNo', + title: '狀態', + templet: function (d) { + var btn ; + if (d.statusNo == "A") + btn = '有效'; + else + btn = '無效'; + return btn + //return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' + } + }, + { + field: 'locationNo', + title: '儲位' + }, + { + field: 'custodianName', + title: '保管人' + }, + { + field: 'right', + width: 200, + title: '操作', + fixed: 'right', + templet: function (d) { + var btn = '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a>'; + if (d.statusNo == "A") + btn += ' <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">停用</a>'; + else + btn += ' <a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="del">啟用</a>'; + return btn + //return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">修改</a> <a class="layui-btn layui-btn-danger layui-btn-xs layui-icon layui-icon-delete" lay-event="del">删除</a>' + } + }] + ]; + + //通过行tool编辑,lay-event="edit" + function edit(obj) { + if (obj.data.outfitID) { + hg.open('修改設備基本資料', '/JIG/JIG004U/' + obj.data.outfitID, 640,320); + } + } + + //通过行tool删除,lay-event="del" + function del(obj) { + var status; + if (obj.data.status == "A") + status = "停用"; + else + status = "啟用"; + + if (obj.data.outfitID) { + hg.confirm("設備:" + obj.data.outfitNo + ",确定要" + status +"吗?", function () { + $.ajax({ + url: '/JIG/JIG004D', + data: { id: obj.data.outfitID }, + type: 'POST', + success: function (data) { + if (data.success) { + obj.del(); //只删本地数据 + hg.msghide(status+"成功!"); + } + else { + hg.msg(data.msg); + } + }, + error: function () { + hg.msg("网络请求失败!"); + } + }); + }); + } + } + var toolbar = [{ + text: '新增', + layuiicon: '', + class: 'layui-btn-normal', + handler: function () { + hg.open('新增設備基本資料', '/JIG/JIG004C', 640, 320); + + } + } + ]; + + ////搜索 + $('#querysubmit').click(function () { + + hg.msghide("刷新数据!"); + tt(); + + }); + + //$("#TypeFlag").change(function () { + // alert("123"); + // var data = $("#TypeFlag").val(); + // getCommodityByType(data); + //}); + layui.use(['form', 'layer', 'laydate'], function () { + form = layui.form; + form.on('select(TypeFlag)', function (data) { + var data = $("#TypeFlag").val(); + console.info(data); + getCommodityByType(data); + }); + form.on('select(Commodity)', function (data) { + var data = $("#Commodity").val(); + console.info(data); + getVarityByCommodityID(data); + }); + + }); + + function getCommodityByType(data) { + var TypeFlag = $("#TypeFlag").val(); + $.ajax({ + url: "/JIG/GetOutfitCommodityInfoesByQuery?TypeFlag=" + data +"&Status=A", + dataType: 'json', + //data: { id: data }, + contentType: "application/json", + type: 'get', + success: function (result) { + if (result.data) { + $("#Commodity").empty(); + var count = 0; + $('#Commodity').append(new Option("全部", "-99")); + $.each(result.data, function (index, item) { + $('#Commodity').append(new Option(item.commodityName, item.commodityID)); + count = count + 1; + }); + if (count == 0) { + $("#Commodity").empty(); + $('#Commodity').append(new Option("無選項", "")); + + } + } + else { + $("#Commodity").empty(); + $('#Commodity').append(new Option("無選項", "")); + } + layui.form.render("select"); + } + }); + }; + function getVarityByCommodityID(data) { + $.ajax({ + url: "/JIG/GetOutfitVarityInfoesByQuery?TypeFlag=*&CommodityID=" + data + "&Status=A", + dataType: 'json', + //data: { id: data }, + contentType: "application/json", + type: 'get', + success: function (result) { + if (result.data) { + $("#Varity").empty(); + var count = 0; + $('#Varity').append(new Option("全部", "-99")); + $.each(result.data, function (index, item) { + $('#Varity').append(new Option(item.varityName, item.varityID)); + count = count + 1; + }); + if (count == 0) { + $("#Varity").empty(); + $('#Varity').append(new Option("無選項", "")); + + } + } + else { + $("#Varity").empty(); + $('#Varity').append(new Option("無選項", "")); + } + layui.form.render("select"); + } + }); + }; + ////搜索 + $('#querysubmit').click(function () { + hg.msghide("刷新数据!"); + tt(); + }); + + var table; + $(function () { + tt(); + }); + //基本数据表格 + function tt() { + table = hg.table.datatable('test', '設備規格維護', + '/JIG/GetOutfitInfoesByQuery?TypeFlag=' + $("#TypeFlag").val() + '&CommodityID=' + $("#Commodity").val() + '&VarityID=' + $("#Varity").val() + '&Status=' + $("#Status").val() + '&QANo=' + $("#QANo").val() + '&PartNo=' + $("#PartNo").val() + , {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']); + } + + </script> +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/JIG/JIG004C.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG004C.cshtml new file mode 100644 index 00000000..b9aceb3a --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG004C.cshtml @@ -0,0 +1,204 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitInfo + + +@{ ViewData["Title"] = "SPC004C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG004CSave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="OutfitID" value="0" /> + <input type="hidden" asp-for="CreateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="StatusNo" value="A" /> + + <div class="form-group form-inline my-sm-1"> + <label asp-for="FactoryCode" class="control-label col-sm-3"></label> + <select asp-for="FactoryCode" asp-items="@ViewBag.Factory" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="FactoryCode" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityID" class="control-label col-sm-3"></label> + <select id="CommodityID" asp-for="CommodityID" asp-items="@ViewBag.TypesList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VarietyID" class="control-label col-sm-3"></label> + <select id="Variety" asp-for="VarietyID" asp-items="@ViewBag.VarietyList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="StockQty" class="control-label col-sm-3"></label> + <input asp-for="StockQty" class="form-control col-sm-9" /> + <span asp-validation-for="StockQty" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="QANo" class="control-label col-sm-3"></label> + <input asp-for="QANo" class="form-control col-sm-9" /> + <span asp-validation-for="QANo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="PartNo" class="control-label col-sm-3"></label> + <input asp-for="PartNo" class="form-control col-sm-9" /> + <span asp-validation-for="PartNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="OutfitNo" class="control-label col-sm-3"></label> + <input asp-for="OutfitNo" class="form-control col-sm-9" /> + <span asp-validation-for="OutfitNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VendorID" class="control-label col-sm-3"></label> + <select asp-for="VendorID" asp-items="@ViewBag.VendorList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="ModelNo" class="control-label col-sm-3"></label> + <input asp-for="ModelNo" class="form-control col-sm-9" /> + <span asp-validation-for="ModelNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="BarcodeNo" class="control-label col-sm-3"></label> + <input asp-for="BarcodeNo" class="form-control col-sm-9" /> + <span asp-validation-for="BarcodeNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="PuchaseDate" class="control-label col-sm-3"></label> + <input asp-for="PuchaseDate" type="date" class="form-control col-sm-9" /> + <span asp-validation-for="PuchaseDate" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="UnitPrice" class="control-label col-sm-3"></label> + <input asp-for="UnitPrice" class="form-control col-sm-9" /> + <span asp-validation-for="UnitPrice" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CustodianDept" class="control-label col-sm-3"></label> + <input asp-for="CustodianDept" class="form-control col-sm-9" /> + <span asp-validation-for="CustodianDept" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CustodianName" class="control-label col-sm-3"></label> + <input asp-for="CustodianName" class="form-control col-sm-9" /> + <span asp-validation-for="CustodianName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="AreaNo" class="control-label col-sm-3"></label> + <input asp-for="AreaNo" class="form-control col-sm-9" /> + <span asp-validation-for="AreaNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="LocationNo" class="control-label col-sm-3"></label> + <input asp-for="LocationNo" class="form-control col-sm-9" /> + <span asp-validation-for="LocationNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CheckDate" class="control-label col-sm-3"></label> + <input asp-for="CheckDate" type="date" class="form-control col-sm-9" /> + <span asp-validation-for="CheckDate" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="NextDate" class="control-label col-sm-3"></label> + <input asp-for="NextDate" type="date" class="form-control col-sm-9" /> + <span asp-validation-for="NextDate" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Remark" class="control-label col-sm-3"></label> + <input asp-for="Remark" class="form-control col-sm-9" /> + <span asp-validation-for="Remark" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Master" class="control-label col-sm-3"></label> + <select asp-for="Master" class="custom-select col-sm-9"> + <option value="Y">是</option> + <option value="N">否</option> + </select> + <span asp-validation-for="Master" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + @*<div class="form-group form-inline my-sm-1"> + <label asp-for="Status" class="control-label col-sm-3"></label> + <select asp-for="Status" class="custom-select col-sm-9"> + <option value="A">可用</option> + <option value="S">停用</option> + </select> + <span asp-validation-for="Status" class="text-danger offset-sm-3 my-sm-1"></span> + </div>*@ + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + +<script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); + + + $("#CommodityID").change(function () { + var data = $("#CommodityID").val(); + getVarityByCommodityID(data); + }); + function getVarityByCommodityID(data) { + $.ajax({ + url: "/JIG/GetOutfitVarityInfoesByQuery?TypeFlag=*&CommodityID=" + data + "&Status=A", + dataType: 'json', + //data: { id: data }, + contentType: "application/json", + type: 'get', + success: function (result) { + if (result.data) { + $("#Variety").empty(); + var count = 0; + $('#Variety').append(new Option("全部", "-99")); + $.each(result.data, function (index, item) { + $('#Variety').append(new Option(item.varityName, item.varityID)); + count = count + 1; + }); + if (count == 0) { + $("#Variety").empty(); + $('#Variety').append(new Option("無選項", "")); + + } + } + else { + $("#Variety").empty(); + $('#Variety').append(new Option("無選項", "")); + } + layui.form.render("select"); + } + }); + }; +</script> + + +} + diff --git a/AMESCoreStudio.Web/Views/JIG/JIG004U.cshtml b/AMESCoreStudio.Web/Views/JIG/JIG004U.cshtml new file mode 100644 index 00000000..18c0075d --- /dev/null +++ b/AMESCoreStudio.Web/Views/JIG/JIG004U.cshtml @@ -0,0 +1,205 @@ +@model AMESCoreStudio.WebApi.Models.AMES.OutfitInfo + + +@{ ViewData["Title"] = "SPC004U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + +<style> + .control-label { + justify-content: flex-end !important; + } +</style> + +<div class="row"> + <div class="col-sm-12"> + <form enctype="multipart/form-data" method="post" asp-action="JIG004USave"> + <div asp-validation-summary="ModelOnly" class="text-danger"></div> + <input type="hidden" asp-for="OutfitID" /> + <input type="hidden" asp-for="CreateUserID" /> + <input type="hidden" asp-for="UpdateUserID" value="@ViewBag.UserID" /> + <input type="hidden" asp-for="CreateDate" /> + <input type="hidden" asp-for="UpdateDate" value="@System.DateTime.Now" /> + <input type="hidden" asp-for="TypeFlag" /> + + + <div class="form-group form-inline my-sm-1"> + <label asp-for="FactoryCode" class="control-label col-sm-3"></label> + <select asp-for="FactoryCode" asp-items="@ViewBag.Factory" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="FactoryCode" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CommodityID" class="control-label col-sm-3"></label> + <select id="CommodityID" asp-for="CommodityID" asp-items="@ViewBag.TypesList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VarietyID" class="control-label col-sm-3"></label> + <select id="Variety" asp-for="VarietyID" asp-items="@ViewBag.VarityList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="StockQty" class="control-label col-sm-3"></label> + <input asp-for="StockQty" class="form-control col-sm-9" /> + <span asp-validation-for="StockQty" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="QANo" class="control-label col-sm-3"></label> + <input asp-for="QANo" class="form-control col-sm-9" /> + <span asp-validation-for="QANo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="PartNo" class="control-label col-sm-3"></label> + <input asp-for="PartNo" class="form-control col-sm-9" /> + <span asp-validation-for="PartNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="OutfitNo" class="control-label col-sm-3"></label> + <input asp-for="OutfitNo" class="form-control col-sm-9" /> + <span asp-validation-for="OutfitNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="VendorID" class="control-label col-sm-3"></label> + <select asp-for="VendorID" asp-items="@ViewBag.VendorList" class="custom-select col-sm-9"> + <option value="">請選擇</option> + </select> + <span asp-validation-for="CommodityID" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="ModelNo" class="control-label col-sm-3"></label> + <input asp-for="ModelNo" class="form-control col-sm-9" /> + <span asp-validation-for="ModelNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="BarcodeNo" class="control-label col-sm-3"></label> + <input asp-for="BarcodeNo" class="form-control col-sm-9" /> + <span asp-validation-for="BarcodeNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="PuchaseDate" class="control-label col-sm-3"></label> + <input asp-for="PuchaseDate" type="date" class="form-control col-sm-9" /> + <span asp-validation-for="PuchaseDate" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="UnitPrice" class="control-label col-sm-3"></label> + <input asp-for="UnitPrice" class="form-control col-sm-9" /> + <span asp-validation-for="UnitPrice" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CustodianDept" class="control-label col-sm-3"></label> + <input asp-for="CustodianDept" class="form-control col-sm-9" /> + <span asp-validation-for="CustodianDept" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CustodianName" class="control-label col-sm-3"></label> + <input asp-for="CustodianName" class="form-control col-sm-9" /> + <span asp-validation-for="CustodianName" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="AreaNo" class="control-label col-sm-3"></label> + <input asp-for="AreaNo" class="form-control col-sm-9" /> + <span asp-validation-for="AreaNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="LocationNo" class="control-label col-sm-3"></label> + <input asp-for="LocationNo" class="form-control col-sm-9" /> + <span asp-validation-for="LocationNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="CheckDate" class="control-label col-sm-3"></label> + <input asp-for="CheckDate" type="date" class="form-control col-sm-9" /> + <span asp-validation-for="CheckDate" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="NextDate" class="control-label col-sm-3"></label> + <input asp-for="NextDate" type="date" class="form-control col-sm-9" /> + <span asp-validation-for="NextDate" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Remark" class="control-label col-sm-3"></label> + <input asp-for="Remark" class="form-control col-sm-9" /> + <span asp-validation-for="Remark" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="Master" class="control-label col-sm-3"></label> + <select asp-for="Master" class="custom-select col-sm-9"> + <option value="Y">是</option> + <option value="N">否</option> + </select> + <span asp-validation-for="Master" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <div class="form-group form-inline my-sm-1"> + <label asp-for="StatusNo" class="control-label col-sm-3"></label> + <select asp-for="StatusNo" class="custom-select col-sm-9"> + <option value="A">可用</option> + <option value="S">停用</option> + </select> + <span asp-validation-for="StatusNo" class="text-danger offset-sm-3 my-sm-1"></span> + </div> + <span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span> + <div class="form-group"> + <input type="submit" value="保存" class="btn btn-primary offset-sm-3" /> + </div> + + </form> + </div> +</div> + +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + <script type="text/javascript"> + $(document).ready(function () { + var error = '@Html.ValidationMessage("error")'; + if ($(error).text() != '') { + parent.hg.msg(error); + } + }); + + + $("#CommodityID").change(function () { + var data = $("#CommodityID").val(); + getVarityByCommodityID(data); + }); + function getVarityByCommodityID(data) { + $.ajax({ + url: "/JIG/GetOutfitVarityInfoesByQuery?TypeFlag=*&CommodityID=" + data + "&Status=A", + dataType: 'json', + //data: { id: data }, + contentType: "application/json", + type: 'get', + success: function (result) { + if (result.data) { + $("#Variety").empty(); + var count = 0; + $('#Variety').append(new Option("全部", "-99")); + $.each(result.data, function (index, item) { + $('#Variety').append(new Option(item.varityName, item.varityID)); + count = count + 1; + }); + if (count == 0) { + $("#Variety").empty(); + $('#Variety').append(new Option("無選項", "")); + + } + } + else { + $("#Variety").empty(); + $('#Variety').append(new Option("無選項", "")); + } + layui.form.render("select"); + } + }); + }; + </script> + + +} + 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 0763dc5d..0df535e3 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 d92c4088..33cb2e67 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 ccbeb63c..c818f923 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 11c7c45c..46955df7 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 73dc25f2..f56a9a67 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 162e7459..81f79226 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 a027d025..cef2726f 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 ab5ca1c1..29fc7899 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 9725bef2..56e1a327 100644 --- a/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml +++ b/AMESCoreStudio.Web/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml @@ -2361,19 +2361,27 @@ <param name="id"></param> <returns></returns> </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.GetOutfitCommodityInfoByQuery(System.Int32,System.String)"> + <summary> + + </summary> + <param name="TypeFlag"></param> + <param name="Status"></param> + <returns></returns> + </member> <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.PutOutfitCommodityInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo)"> <summary> </summary> <param name="id"></param> - <param name="workGroup"></param> + <param name="OutfitCommodityInfo"></param> <returns></returns> </member> <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.PostOutfitCommodityInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo)"> <summary> 新增资料 </summary> - <param name="workGroup"></param> + <param name="OutfitCommodityInfo"></param> <returns></returns> </member> <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.DeleteOutfitCommodityInfo(System.Int32)"> @@ -2383,6 +2391,165 @@ <param name="id"></param> <returns></returns> </member> + <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController"> + <summary> + 工作群組維護 + </summary> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.#ctor(AMESCoreStudio.WebApi.AMESContext)"> + <summary> + + </summary> + <param name="context"></param> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.GetOutfitInfo"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.GetOutfitInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.GetOutfitInfoByQuery(System.Int32,System.Int32,System.Int32,System.String,System.String,System.String)"> + <summary> + + </summary> + <param name="TypeFlag"></param> + <param name="CommodityID"></param> + <param name="VarityID"></param> + <param name="Status"></param> + <param name="QANo"></param> + <param name="PartNo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.PutOutfitInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitInfo)"> + <summary> + + </summary> + <param name="id"></param> + <param name="OutfitInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.PostOutfitInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitInfo)"> + <summary> + 新增资料 + </summary> + <param name="OutfitInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.DeleteOutfitInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController"> + <summary> + 工作群組維護 + </summary> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.#ctor(AMESCoreStudio.WebApi.AMESContext)"> + <summary> + + </summary> + <param name="context"></param> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.GetOutfitVarityInfo"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.GetOutfitVarityInfoByQuery(System.Int32,System.Int32,System.String)"> + <summary> + + </summary> + <param name="TypeFlag"></param> + <param name="CommodityID"></param> + <param name="Status"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.GetOutfitVarityInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.PutOutfitVarityInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo)"> + <summary> + + </summary> + <param name="id"></param> + <param name="OutfitVarityInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.PostOutfitVarityInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo)"> + <summary> + 新增资料 + </summary> + <param name="OutfitVarityInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.DeleteOutfitVarityInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController"> + <summary> + 工作群組維護 + </summary> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.#ctor(AMESCoreStudio.WebApi.AMESContext)"> + <summary> + + </summary> + <param name="context"></param> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.GetOutfitVendorInfo"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.GetOutfitVendorInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.PutOutfitVendorInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo)"> + <summary> + + </summary> + <param name="id"></param> + <param name="OutfitVendorInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.PostOutfitVendorInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo)"> + <summary> + 新增资料 + </summary> + <param name="OutfitVendorInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.DeleteOutfitVendorInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.PartMapsController"> <summary> @@ -7240,6 +7407,11 @@ 廠商資料檔 </summary> </member> + <member name="P:AMESCoreStudio.WebApi.AMESContext.OutfitInfoes"> + <summary> + 治具資料檔 + </summary> + </member> <member name="T:AMESCoreStudio.WebApi.Models.AMES.BarcodeChange"> <summary> 條碼變更資料表 @@ -10393,6 +10565,11 @@ 0:設備/料件; 2:耗材 </summary> </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo.StorageFlag"> + <summary> + 是否為存儲類設備) + </summary> + </member> <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo.Status"> <summary> 狀態(A-可用;S-停用) @@ -10424,6 +10601,216 @@ 更新日期 </summary> </member> + <member name="T:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo"> + <summary> + 設備資料檔 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.OutfitID"> + <summary> + 治具ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CommodityID"> + <summary> + 品名ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.VarietyID"> + <summary> + 種類ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.OutfitNo"> + <summary> + 設備編碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.StatusNo"> + <summary> + 狀態 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Remark"> + <summary> + 備註 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.BuyDay"> + <summary> + 購置日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.ScheReturnDay"> + <summary> + 預計歸還日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Custondian"> + <summary> + 當前保管人 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.AreaNo"> + <summary> + 區代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.LevelNo"> + <summary> + 層別代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.SiteNo"> + <summary> + 位置代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.LocationNo"> + <summary> + 儲位編碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.PartNo"> + <summary> + 料件料號;財產名稱 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.TypeFlag"> + <summary> + 標識(0-設備;1-料件) + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.FactoryCode"> + <summary> + 廠別代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.PuchaseDate"> + <summary> + 購置日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UnitPrice"> + <summary> + 單價 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.QualityDate"> + <summary> + 質保日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.VendorID"> + <summary> + 廠商ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.QANo"> + <summary> + OA單號/管理編號 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.StockQty"> + <summary> + 庫存數量 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Unit"> + <summary> + 單位 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.LotNo"> + <summary> + 特殊種類(X:錫膏; H-紅膠儀器編號) + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Boards"> + <summary> + 鋼網連板數量 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UseTimes"> + <summary> + 治具使用次數 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.TotalTimes"> + <summary> + 治具累計使用次數 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.ModelNo"> + <summary> + 型號 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.BarcodeNo"> + <summary> + 內部條碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.TypeID"> + <summary> + 校驗方式 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CycleID"> + <summary> + 檢驗週期ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.ForeignExpenses"> + <summary> + 外校費用 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CheckDate"> + <summary> + 校驗日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.NextDate"> + <summary> + 下次校驗日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Master"> + <summary> + 是否為母儀(Y/N) + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CustodianName"> + <summary> + 當前保管人 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CustodianDept"> + <summary> + 當前保管人部門 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CreateUserID"> + <summary> + 創建者ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CreateDate"> + <summary> + 創建日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UpdateUserID"> + <summary> + 更新者ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UpdateDate"> + <summary> + 更新日期 + </summary> + </member> <member name="T:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo"> <summary> 設備規格資料檔 @@ -10459,7 +10846,7 @@ 狀態(A-可用;S-停用) </summary> </member> - <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo.UseLimitDays"> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo.UseLimitTimes"> <summary> 預定試用次數 </summary> @@ -10484,6 +10871,11 @@ 更新日期 </summary> </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo.Commodity"> + <summary> + 製程單位主檔 + </summary> + </member> <member name="T:AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo"> <summary> 廠商資料檔 diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitAreaInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitAreaInfoesController.cs new file mode 100644 index 00000000..42c3e6da --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitAreaInfoesController.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitAreaInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitAreaInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitAreaInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitAreaInfo>>> GetOutfitAreaInfoes() + { + IQueryable<OutfitAreaInfo> q = _context.OutfitAreaInfoes; + q = q.OrderBy(p => p.AreaNo); + + + var items = await q.ToListAsync(); + + return items; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitAreaInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitAreaInfo>>> GetOutfitAreaInfoes(string id) + { + IQueryable<OutfitAreaInfo> q = _context.OutfitAreaInfoes; + q = q.Where(p => p.AreaNo.Equals(id)); + + var items = await q.ToListAsync(); + + if (items == null) + { + return NotFound(); + } + + return items; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="items"></param> + /// <returns></returns> + // PUT: api/OutfitAreaInfoes/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<ResultModel<OutfitAreaInfo>> PutOutfitAreaInfoes(string id,[FromBody] OutfitAreaInfo items) + { + ResultModel<OutfitAreaInfo> result = new ResultModel<OutfitAreaInfo>(); + + if (id != items.AreaNo) + { + result.Success = false; + result.Msg = "區域代碼錯誤"; + return result; + } + + _context.Entry(items).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!OutfitAreaInfoesExists(id)) + { + result.Success = false; + result.Msg = "區域代碼不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="items"></param> + /// <returns></returns> + // POST: api/OutfitAreaInfoes + // 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<ResultModel<OutfitAreaInfo>> PostOutfitAreaInfoes([FromBody] OutfitAreaInfo items) + { + ResultModel<OutfitAreaInfo> result = new ResultModel<OutfitAreaInfo>(); + + _context.OutfitAreaInfoes.Add(items); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (OutfitAreaInfoesExists(items.AreaNo)) + { + result.Success = false; + result.Msg = "區域代碼重複"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitAreaInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitAreaInfo>> DeleteOutfitAreaInfoes(string id) + { + ResultModel<OutfitAreaInfo> result = new ResultModel<OutfitAreaInfo>(); + + var items = await _context.OutfitAreaInfoes.FindAsync(id); + if (items == null) + { + result.Success = false; + result.Msg = "區域代碼不存在"; + return result; + } + + _context.OutfitAreaInfoes.Remove(items); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + } + + private bool OutfitAreaInfoesExists(string id) + { + return _context.OutfitAreaInfoes.Any(e => e.AreaNo == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitCommodityInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitCommodityInfoesController.cs new file mode 100644 index 00000000..3217008f --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitCommodityInfoesController.cs @@ -0,0 +1,229 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// 工作群組維護 + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitCommodityInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitCommodityInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitCommodityInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitCommodityInfo>>> GetOutfitCommodityInfo() + { + IQueryable<OutfitCommodityInfo> q = _context.OutfitCommodityInfoes; + + q = q.OrderBy(p => p.CommodityID); + + var OutfitCommodityInfo = await q.ToListAsync(); + + return OutfitCommodityInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitCommodityInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitCommodityInfo>>> GetOutfitCommodityInfo(int id) + { + IQueryable<OutfitCommodityInfo> q = _context.OutfitCommodityInfoes; + q = q.Where(p => p.CommodityID.Equals(id)); + + var OutfitCommodityInfo = await q.ToListAsync(); + + if (OutfitCommodityInfo == null) + { + return NotFound(); + } + + return OutfitCommodityInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="TypeFlag"></param> + /// <param name="Status"></param> + /// <returns></returns> + // GET: api/OutfitCommodityInfoes/5 + [HttpGet("Query/{TypeFlag}/{Status}")] + public async Task<ActionResult<IEnumerable<OutfitCommodityInfo>>> GetOutfitCommodityInfoByQuery(int TypeFlag, string Status) + { + IQueryable<OutfitCommodityInfo> q = _context.OutfitCommodityInfoes; + + if(TypeFlag !=-99) + q = q.Where(p => p.TypeFlag.Equals(TypeFlag)); + if (Status != "*") + q = q.Where(p => p.Status.Equals(Status)); + + var OutfitCommodityInfo = await q.ToListAsync(); + + if (OutfitCommodityInfo == null) + { + return NotFound(); + } + + return OutfitCommodityInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="OutfitCommodityInfo"></param> + /// <returns></returns> + // PUT: api/OutfitCommodityInfoes/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<ResultModel<OutfitCommodityInfo>> PutOutfitCommodityInfo(int id, [FromBody] OutfitCommodityInfo OutfitCommodityInfo) + { + ResultModel<OutfitCommodityInfo> result = new ResultModel<OutfitCommodityInfo>(); + if (id != OutfitCommodityInfo.CommodityID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(OutfitCommodityInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// 新增资料 + /// </summary> + /// <param name="OutfitCommodityInfo"></param> + /// <returns></returns> + // POST: api/OutfitCommodityInfoes + // 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<ResultModel<OutfitCommodityInfo>> PostOutfitCommodityInfo(OutfitCommodityInfo OutfitCommodityInfo) + { + ResultModel<OutfitCommodityInfo> result = new ResultModel<OutfitCommodityInfo>(); + Helper helper = new Helper(_context); + OutfitCommodityInfo.CommodityID = helper.GetIDKey("OUTFITCOMMODITY_ID").Result; + if (string.IsNullOrEmpty(OutfitCommodityInfo.SmtFlag)) + OutfitCommodityInfo.SmtFlag = ""; + + _context.OutfitCommodityInfoes.Add(OutfitCommodityInfo); + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitCommodityInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitCommodityInfo>> DeleteOutfitCommodityInfo(int id) + { + ResultModel<OutfitCommodityInfo> result = new ResultModel<OutfitCommodityInfo>(); + var OutfitCommodityInfo = await _context.OutfitCommodityInfoes.Where(p => p.CommodityID == id).FirstOrDefaultAsync(); + if (OutfitCommodityInfo == null) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + //_context.OutfitCommodityInfoes.Remove(OutfitCommodityInfo); + + OutfitCommodityInfo newOutfitCommodityInfo = new OutfitCommodityInfo(); + newOutfitCommodityInfo = OutfitCommodityInfo; + + if (OutfitCommodityInfo.Status == "A") + newOutfitCommodityInfo.Status = "S"; + else + newOutfitCommodityInfo.Status = "A"; + + _context.Entry(newOutfitCommodityInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + + } + + private bool OutfitCommodityInfoExists(int id) + { + return _context.OutfitCommodityInfoes.Any(e => e.CommodityID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs new file mode 100644 index 00000000..baa24682 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitInfoesController.cs @@ -0,0 +1,249 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// 工作群組維護 + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitInfo>>> GetOutfitInfo() + { + IQueryable<OutfitInfo> q = _context.OutfitInfoes; + + q = q.OrderBy(p => p.OutfitID); + + var OutfitInfo = await q.ToListAsync(); + + return OutfitInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitInfo>>> GetOutfitInfo(int id) + { + IQueryable<OutfitInfo> q = _context.OutfitInfoes; + q = q.Where(p => p.OutfitID.Equals(id)); + + var OutfitInfo = await q.ToListAsync(); + + if (OutfitInfo == null) + { + return NotFound(); + } + + return OutfitInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="TypeFlag"></param> + /// <param name="CommodityID"></param> + /// <param name="VarityID"></param> + /// <param name="Status"></param> + /// <param name="QANo"></param> + /// <param name="PartNo"></param> + /// <returns></returns> + // GET: api/OutfitInfoes/5 + [HttpGet("Query/{TypeFlag}/{CommodityID}/{VarityID}/{Status}/{QANo}/{PartNo}")] + public async Task<ActionResult<IEnumerable<OutfitInfo>>> GetOutfitInfoByQuery(int TypeFlag, int CommodityID, int VarityID, string Status, string QANo, string PartNo) + { + IQueryable<OutfitInfo> q = _context.OutfitInfoes; + + if (VarityID != -99) + q = q.Where(p => p.VarietyID.Equals(VarityID)); + else + { + if (CommodityID != -99) + q = q.Where(p => p.CommodityID.Equals(CommodityID)); + else + { + if (TypeFlag != -99) + q = q.Where(p => p.TypeFlag.Equals(TypeFlag)); + } + } + + if (Status != "*") + q = q.Where(p => p.StatusNo.Equals(Status)); + + if (QANo != "*") + q = q.Where(p => p.QANo.Equals(QANo)); + + if (PartNo != "*") + q = q.Where(p => p.PartNo.Equals(PartNo)); + + + var OutfitInfo = await q.ToListAsync(); + + if (OutfitInfo == null) + { + return NotFound(); + } + + return OutfitInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="OutfitInfo"></param> + /// <returns></returns> + // PUT: api/OutfitInfoes/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<ResultModel<OutfitInfo>> PutOutfitInfo(int id, [FromBody] OutfitInfo OutfitInfo) + { + ResultModel<OutfitInfo> result = new ResultModel<OutfitInfo>(); + if (id != OutfitInfo.OutfitID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(OutfitInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// 新增资料 + /// </summary> + /// <param name="OutfitInfo"></param> + /// <returns></returns> + // POST: api/OutfitInfoes + // 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<ResultModel<OutfitInfo>> PostOutfitInfo(OutfitInfo OutfitInfo) + { + ResultModel<OutfitInfo> result = new ResultModel<OutfitInfo>(); + Helper helper = new Helper(_context); + OutfitInfo.OutfitID = helper.GetIDKey("OUTFIT_ID").Result; + + _context.OutfitInfoes.Add(OutfitInfo); + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitInfo>> DeleteOutfitInfo(int id) + { + ResultModel<OutfitInfo> result = new ResultModel<OutfitInfo>(); + var OutfitInfo = await _context.OutfitInfoes.Where(p => p.OutfitID == id).FirstOrDefaultAsync(); + if (OutfitInfo == null) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + //_context.OutfitInfoes.Remove(OutfitInfo); + + OutfitInfo newOutfitInfo = new OutfitInfo(); + newOutfitInfo = OutfitInfo; + + if (OutfitInfo.StatusNo == "A") + newOutfitInfo.StatusNo = "S"; + else + newOutfitInfo.StatusNo = "A"; + + _context.Entry(newOutfitInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + + } + + private bool OutfitInfoExists(int id) + { + return _context.OutfitInfoes.Any(e => e.OutfitID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitLevelInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitLevelInfoesController.cs new file mode 100644 index 00000000..873a192e --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitLevelInfoesController.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitLevelInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitLevelInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitLevelInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitLevelInfo>>> GetOutfitLevelInfoes() + { + IQueryable<OutfitLevelInfo> q = _context.OutfitLevelInfoes; + q = q.OrderBy(p => p.LevelNo); + + + var items = await q.ToListAsync(); + + return items; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitLevelInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitLevelInfo>>> GetOutfitLevelInfoes(string id) + { + IQueryable<OutfitLevelInfo> q = _context.OutfitLevelInfoes; + q = q.Where(p => p.LevelNo.Equals(id)); + + var items = await q.ToListAsync(); + + if (items == null) + { + return NotFound(); + } + + return items; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="items"></param> + /// <returns></returns> + // PUT: api/OutfitLevelInfoes/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<ResultModel<OutfitLevelInfo>> PutOutfitLevelInfoes(string id,[FromBody] OutfitLevelInfo items) + { + ResultModel<OutfitLevelInfo> result = new ResultModel<OutfitLevelInfo>(); + + if (id != items.LevelNo) + { + result.Success = false; + result.Msg = "區域代碼錯誤"; + return result; + } + + _context.Entry(items).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!OutfitLevelInfoesExists(id)) + { + result.Success = false; + result.Msg = "區域代碼不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="items"></param> + /// <returns></returns> + // POST: api/OutfitLevelInfoes + // 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<ResultModel<OutfitLevelInfo>> PostOutfitLevelInfoes([FromBody] OutfitLevelInfo items) + { + ResultModel<OutfitLevelInfo> result = new ResultModel<OutfitLevelInfo>(); + + _context.OutfitLevelInfoes.Add(items); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (OutfitLevelInfoesExists(items.LevelNo)) + { + result.Success = false; + result.Msg = "區域代碼重複"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitLevelInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitLevelInfo>> DeleteOutfitLevelInfoes(string id) + { + ResultModel<OutfitLevelInfo> result = new ResultModel<OutfitLevelInfo>(); + + var items = await _context.OutfitLevelInfoes.FindAsync(id); + if (items == null) + { + result.Success = false; + result.Msg = "區域代碼不存在"; + return result; + } + + _context.OutfitLevelInfoes.Remove(items); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + } + + private bool OutfitLevelInfoesExists(string id) + { + return _context.OutfitLevelInfoes.Any(e => e.LevelNo == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitSiteInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitSiteInfoesController.cs new file mode 100644 index 00000000..e6d012f3 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitSiteInfoesController.cs @@ -0,0 +1,186 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitSiteInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitSiteInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitSiteInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitSiteInfo>>> GetOutfitSiteInfoes() + { + IQueryable<OutfitSiteInfo> q = _context.OutfitSiteInfoes; + q = q.OrderBy(p => p.SiteNo); + + + var items = await q.ToListAsync(); + + return items; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitSiteInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitSiteInfo>>> GetOutfitSiteInfoes(string id) + { + IQueryable<OutfitSiteInfo> q = _context.OutfitSiteInfoes; + q = q.Where(p => p.SiteNo.Equals(id)); + + var items = await q.ToListAsync(); + + if (items == null) + { + return NotFound(); + } + + return items; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="items"></param> + /// <returns></returns> + // PUT: api/OutfitSiteInfoes/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<ResultModel<OutfitSiteInfo>> PutOutfitSiteInfoes(string id,[FromBody] OutfitSiteInfo items) + { + ResultModel<OutfitSiteInfo> result = new ResultModel<OutfitSiteInfo>(); + + if (id != items.SiteNo) + { + result.Success = false; + result.Msg = "區域代碼錯誤"; + return result; + } + + _context.Entry(items).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!OutfitSiteInfoesExists(id)) + { + result.Success = false; + result.Msg = "區域代碼不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="items"></param> + /// <returns></returns> + // POST: api/OutfitSiteInfoes + // 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<ResultModel<OutfitSiteInfo>> PostOutfitSiteInfoes([FromBody] OutfitSiteInfo items) + { + ResultModel<OutfitSiteInfo> result = new ResultModel<OutfitSiteInfo>(); + + _context.OutfitSiteInfoes.Add(items); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + if (OutfitSiteInfoesExists(items.SiteNo)) + { + result.Success = false; + result.Msg = "區域代碼重複"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitSiteInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitSiteInfo>> DeleteOutfitSiteInfoes(string id) + { + ResultModel<OutfitSiteInfo> result = new ResultModel<OutfitSiteInfo>(); + + var items = await _context.OutfitSiteInfoes.FindAsync(id); + if (items == null) + { + result.Success = false; + result.Msg = "區域代碼不存在"; + return result; + } + + _context.OutfitSiteInfoes.Remove(items); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + } + + private bool OutfitSiteInfoesExists(string id) + { + return _context.OutfitSiteInfoes.Any(e => e.SiteNo == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitVarityInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitVarityInfoesController.cs new file mode 100644 index 00000000..424c670f --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitVarityInfoesController.cs @@ -0,0 +1,235 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// 工作群組維護 + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitVarityInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitVarityInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitVarityInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitVarityInfo>>> GetOutfitVarityInfo() + { + IQueryable<OutfitVarityInfo> q = _context.OutfitVarityInfoes; + + q = q.OrderBy(p => p.VarityID); + + var OutfitVarityInfo = await q.ToListAsync(); + + return OutfitVarityInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="TypeFlag"></param> + /// <param name="CommodityID"></param> + /// <param name="Status"></param> + /// <returns></returns> + // GET: api/OutfitVarityInfoes/5 + [HttpGet("Query/{TypeFlag}/{CommodityID}/{Status}")] + public async Task<ActionResult<IEnumerable<OutfitVarityInfo>>> GetOutfitVarityInfoByQuery(int TypeFlag, int CommodityID, string Status) + { + IQueryable<OutfitVarityInfo> q = _context.OutfitVarityInfoes; + + if (CommodityID != -99) + q = q.Where(p => p.CommodityID.Equals(CommodityID)); + else + { + if (TypeFlag != -99) + q = q.Where(p => p.Commodity.TypeFlag.Equals(TypeFlag)); + } + + if (Status != "*") + q = q.Where(p => p.Status.Equals(Status)); + + var OutfitVarityInfo = await q.ToListAsync(); + + if (OutfitVarityInfo == null) + { + return NotFound(); + } + + return OutfitVarityInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitVarityInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitVarityInfo>>> GetOutfitVarityInfo(int id) + { + IQueryable<OutfitVarityInfo> q = _context.OutfitVarityInfoes; + q = q.Where(p => p.VarityID.Equals(id)); + + var OutfitVarityInfo = await q.ToListAsync(); + + if (OutfitVarityInfo == null) + { + return NotFound(); + } + + return OutfitVarityInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="OutfitVarityInfo"></param> + /// <returns></returns> + // PUT: api/OutfitVarityInfoes/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<ResultModel<OutfitVarityInfo>> PutOutfitVarityInfo(int id, [FromBody] OutfitVarityInfo OutfitVarityInfo) + { + ResultModel<OutfitVarityInfo> result = new ResultModel<OutfitVarityInfo>(); + if (id != OutfitVarityInfo.VarityID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(OutfitVarityInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// 新增资料 + /// </summary> + /// <param name="OutfitVarityInfo"></param> + /// <returns></returns> + // POST: api/OutfitVarityInfoes + // 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<ResultModel<OutfitVarityInfo>> PostOutfitVarityInfo(OutfitVarityInfo OutfitVarityInfo) + { + ResultModel<OutfitVarityInfo> result = new ResultModel<OutfitVarityInfo>(); + Helper helper = new Helper(_context); + OutfitVarityInfo.VarityID = helper.GetIDKey("OUTFITVARIETY_ID").Result; + + _context.OutfitVarityInfoes.Add(OutfitVarityInfo); + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitVarityInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitVarityInfo>> DeleteOutfitVarityInfo(int id) + { + ResultModel<OutfitVarityInfo> result = new ResultModel<OutfitVarityInfo>(); + var OutfitVarityInfo = await _context.OutfitVarityInfoes.Where(p => p.VarityID == id).FirstOrDefaultAsync(); + if (OutfitVarityInfo == null) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + + //_context.OutfitVarityInfoes.Remove(OutfitVarityInfo); + + OutfitVarityInfo newOutfitVarityInfo = new OutfitVarityInfo(); + newOutfitVarityInfo = OutfitVarityInfo; + + if (OutfitVarityInfo.Status == "A") + newOutfitVarityInfo.Status = "S"; + else + newOutfitVarityInfo.Status = "A"; + + _context.Entry(newOutfitVarityInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + private bool OutfitVarityInfoExists(int id) + { + return _context.OutfitVarityInfoes.Any(e => e.VarityID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/OutfitVendorInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitVendorInfoesController.cs new file mode 100644 index 00000000..45619ed1 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/OutfitVendorInfoesController.cs @@ -0,0 +1,190 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Http; +using Microsoft.AspNetCore.Mvc; +using Microsoft.EntityFrameworkCore; +using AMESCoreStudio.WebApi; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// <summary> + /// 工作群組維護 + /// </summary> + [Route("api/[controller]")] + [ApiController] + public class OutfitVendorInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// <summary> + /// + /// </summary> + /// <param name="context"></param> + public OutfitVendorInfoesController(AMESContext context) + { + _context = context; + } + + /// <summary> + /// + /// </summary> + /// <returns></returns> + // GET: api/OutfitVendorInfoes + [HttpGet] + public async Task<ActionResult<IEnumerable<OutfitVendorInfo>>> GetOutfitVendorInfo() + { + IQueryable<OutfitVendorInfo> q = _context.OutfitVendorInfoes; + + q = q.OrderBy(p => p.VendorID); + + var OutfitVendorInfo = await q.ToListAsync(); + + return OutfitVendorInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // GET: api/OutfitVendorInfoes/5 + [HttpGet("{id}")] + public async Task<ActionResult<IEnumerable<OutfitVendorInfo>>> GetOutfitVendorInfo(int id) + { + IQueryable<OutfitVendorInfo> q = _context.OutfitVendorInfoes; + q = q.Where(p => p.VendorID.Equals(id)); + + var OutfitVendorInfo = await q.ToListAsync(); + + if (OutfitVendorInfo == null) + { + return NotFound(); + } + + return OutfitVendorInfo; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <param name="OutfitVendorInfo"></param> + /// <returns></returns> + // PUT: api/OutfitVendorInfoes/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<ResultModel<OutfitVendorInfo>> PutOutfitVendorInfo(int id, [FromBody] OutfitVendorInfo OutfitVendorInfo) + { + ResultModel<OutfitVendorInfo> result = new ResultModel<OutfitVendorInfo>(); + if (id != OutfitVendorInfo.VendorID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(OutfitVendorInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// 新增资料 + /// </summary> + /// <param name="OutfitVendorInfo"></param> + /// <returns></returns> + // POST: api/OutfitVendorInfoes + // 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<ResultModel<OutfitVendorInfo>> PostOutfitVendorInfo(OutfitVendorInfo OutfitVendorInfo) + { + ResultModel<OutfitVendorInfo> result = new ResultModel<OutfitVendorInfo>(); + Helper helper = new Helper(_context); + OutfitVendorInfo.VendorID = helper.GetIDKey("OUTFITVENDOR_ID").Result; + + _context.OutfitVendorInfoes.Add(OutfitVendorInfo); + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// <summary> + /// + /// </summary> + /// <param name="id"></param> + /// <returns></returns> + // DELETE: api/OutfitVendorInfoes/5 + [HttpDelete("{id}")] + public async Task<ResultModel<OutfitVendorInfo>> DeleteOutfitVendorInfo(int id) + { + ResultModel<OutfitVendorInfo> result = new ResultModel<OutfitVendorInfo>(); + var OutfitVendorInfo = await _context.OutfitVendorInfoes.Where(p => p.VendorID == id).FirstOrDefaultAsync(); + if (OutfitVendorInfo == null) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.OutfitVendorInfoes.Remove(OutfitVendorInfo); + + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + + } + + private bool OutfitCommodityInfoExists(int id) + { + return _context.OutfitVendorInfoes.Any(e => e.VendorID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs index 5ad4400b..c84e75d6 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs @@ -8,6 +8,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.AMES { @@ -89,11 +90,14 @@ 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<ActionResult<WorkClass>> PutWorkClass(int id, [FromBody] WorkClass workClass) + public async Task<ResultModel<WorkClass>> PutWorkClass(int id, [FromBody] WorkClass workClass) { + ResultModel<WorkClass> result = new ResultModel<WorkClass>(); if (id != workClass.ClassID) { - return BadRequest(); + result.Success = false; + result.Msg = "序號錯誤"; + return result; } _context.Entry(workClass).State = EntityState.Modified; @@ -102,19 +106,19 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES { await _context.SaveChangesAsync(); } - catch (DbUpdateConcurrencyException) + catch (Exception ex) { - if (!WorkClassExists(id)) - { - return NotFound(); - } - else - { - throw; - } + + result.Success = false; + result.Msg = ex.Message; + return result; + } - return workClass; + result.Success = true; + result.Msg = "OK"; + return result; + } /// <summary> @@ -126,15 +130,31 @@ 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. [HttpPost] - public async Task<ActionResult<WorkClass>> PostWorkClass(WorkClass workClass) + public async Task<ResultModel<WorkClass>> PostWorkClass(WorkClass workClass) { + ResultModel<WorkClass> result = new ResultModel<WorkClass>(); Helper helper = new Helper(_context); workClass.ClassID = helper.GetIDKey("WORKCLASS_ID").Result; _context.WorkClasses.Add(workClass); - await _context.SaveChangesAsync(); - return CreatedAtAction("GetWorkClasses", new { id = workClass.ClassID }, workClass); + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } @@ -145,18 +165,36 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// <returns></returns> // DELETE: api/WorkClasses/5 [HttpDelete("{id}")] - public async Task<ActionResult<WorkClass>> DeleteWorkClass(int id) + public async Task<ResultModel<WorkClass>> DeleteWorkClass(int id) { + ResultModel<WorkClass> result = new ResultModel<WorkClass>(); var workClass = await _context.WorkClasses.Where(p => p.ClassID == id).FirstOrDefaultAsync(); if (workClass == null) { - return NotFound(); + result.Success = false; + result.Msg = "序號錯誤"; + return result; } _context.WorkClasses.Remove(workClass); - await _context.SaveChangesAsync(); - return workClass; + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } private bool WorkClassExists(int id) diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs index 6c48433f..19418fe7 100644 --- a/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs @@ -7,6 +7,7 @@ using Microsoft.AspNetCore.Mvc; using Microsoft.EntityFrameworkCore; using AMESCoreStudio.WebApi; using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.CommonTools.Result; namespace AMESCoreStudio.WebApi.Controllers.AMES { @@ -77,11 +78,14 @@ 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<ActionResult<WorkGroup>> PutWorkGroup(int id, [FromBody] WorkGroup workGroup) + public async Task<ResultModel<WorkGroup>> PutWorkGroup(int id, [FromBody] WorkGroup workGroup) { + ResultModel<WorkGroup> result = new ResultModel<WorkGroup>(); if (id != workGroup.GroupID) { - return BadRequest(); + result.Success = false; + result.Msg = "序號錯誤"; + return result; } _context.Entry(workGroup).State = EntityState.Modified; @@ -90,19 +94,19 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES { await _context.SaveChangesAsync(); } - catch (DbUpdateConcurrencyException) + catch (Exception ex) { - if (!WorkGroupExists(id)) - { - return NotFound(); - } - else - { - throw; - } + + result.Success = false; + result.Msg = ex.Message; + return result; + } - return workGroup; + result.Success = true; + result.Msg = "OK"; + return result; + } /// <summary> @@ -114,15 +118,31 @@ 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. [HttpPost] - public async Task<ActionResult<WorkGroup>> PostWorkGroup(WorkGroup workGroup) + public async Task<ResultModel<WorkGroup>> PostWorkGroup(WorkGroup workGroup) { + ResultModel<WorkGroup> result = new ResultModel<WorkGroup>(); Helper helper = new Helper(_context); workGroup.GroupID = helper.GetIDKey("WORKGROUP_ID").Result; _context.WorkGroups.Add(workGroup); - await _context.SaveChangesAsync(); - return CreatedAtAction("GetWorkGroup", new { id = workGroup.GroupID }, workGroup); + try + { + await _context.SaveChangesAsync(); + } + catch (Exception ex) + { + + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; + } @@ -133,18 +153,34 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES /// <returns></returns> // DELETE: api/WorkGroups/5 [HttpDelete("{id}")] - public async Task<ActionResult<WorkGroup>> DeleteWorkGroup(int id) + public async Task<ResultModel<WorkGroup>> DeleteWorkGroup(int id) { + ResultModel<WorkGroup> result = new ResultModel<WorkGroup>(); var workGroup = await _context.WorkGroups.Where(p => p.GroupID == id).FirstOrDefaultAsync(); if (workGroup == null) { - return NotFound(); + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + try + { + await _context.SaveChangesAsync(); } + catch (Exception ex) + { - _context.WorkGroups.Remove(workGroup); - await _context.SaveChangesAsync(); + result.Success = false; + result.Msg = ex.Message; + return result; + + } + + result.Success = true; + result.Msg = "OK"; + return result; - return workGroup; } private bool WorkGroupExists(int id) diff --git a/AMESCoreStudio.WebApi/Controllers/BAS/FactoryInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/BAS/FactoryInfoesController.cs index a59cacb2..4d33aede 100644 --- a/AMESCoreStudio.WebApi/Controllers/BAS/FactoryInfoesController.cs +++ b/AMESCoreStudio.WebApi/Controllers/BAS/FactoryInfoesController.cs @@ -167,7 +167,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS factoryInfoNew = factoryInfo; _context.Entry(factoryInfoNew).State = EntityState.Modified; - ; + if (factoryInfo.StatusNo == "A") factoryInfoNew.StatusNo = "S"; else diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitAreaInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitAreaInfo.cs new file mode 100644 index 00000000..b05ecb12 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitAreaInfo.cs @@ -0,0 +1,77 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; +using Microsoft.EntityFrameworkCore; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 區域資料檔 + /// </summary> + [Keyless] + [Table("OUTFIT_AREA_INFO", Schema = "JHAMES")] + public partial class OutfitAreaInfo + { + /// <summary> + /// 設備規格ID + /// </summary> + //[Key] + //[Column("VARIETY_ID", TypeName = "NUMBER")] + //[DataMember] + //[Required] + //public int VarityID { get; set; } + + /// <summary> + /// 區域代碼 + /// </summary> + [Column("AREA_NO")] + [StringLength(2)] + [DataMember] + [Required] + [Display(Name = "區域代碼")] + public string AreaNo { get; set; } + + + /// <summary> + /// 區域名稱 + /// </summary> + [Column("AREA_DESC")] + [StringLength(50)] + [DataMember] + [Required] + [Display(Name = "區域描述")] + public string AreaDesc { get; set; } + + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitCommodityInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitCommodityInfo.cs new file mode 100644 index 00000000..a984bf0d --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitCommodityInfo.cs @@ -0,0 +1,142 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 設備種類資料檔 + /// </summary> + [Table("OUTFIT_COMMODITY_INFO", Schema = "JHAMES")] + public partial class OutfitCommodityInfo + { + /// <summary> + /// 設備種類ID + /// </summary> + [Key] + [Column("COMMODITY_ID")] + [DataMember] + [Required] + public int CommodityID { get; set; } + + /// <summary> + /// 種類代碼 + /// </summary> + [Column("COMMODITY_NO")] + [StringLength(2)] + [DataMember] + [Required] + [Display(Name = "種類代碼")] + public string CommodityNo { get; set; } + + + /// <summary> + /// 種類名稱 + /// </summary> + [Column("COMMODITY_NAME")] + [StringLength(20)] + [DataMember] + [Required] + [Display(Name = "種類名稱")] + public string CommodityName { get; set; } + + /// <summary> + /// 種類英文名稱 + /// </summary> + [Column("COMMODITY_EN")] + [StringLength(100)] + [DataMember] + [Required] + [Display(Name = "種類英文名稱")] + public string CommodityEn { get; set; } + + /// <summary> + /// 保養預警提前天數 + /// </summary> + [Column("ALERT_FORE_DAYS")]//保養預警提前天數 + [DataMember] + [Required] + [Display(Name = "保養預警提前天數")] + public int AlertForeDays { get; set; } = 0; + + /// <summary> + /// 累計天數 + /// </summary> + [Column("USE_LIMIT_DAYS")]//保養預警提前天數 + [DataMember] + [Required] + [Display(Name = "累計天數")] + public int UseLimitDays { get; set; } = 0; + + /// <summary> + /// 設備種類 + /// 0:設備/料件; 2:耗材 + /// </summary> + [Column("TYPE_FLAG")] + [DataMember] + [Required] + [Display(Name = "種類歸屬")] + public int TypeFlag { get; set; } = 0; + + /// <summary> + /// 是否為存儲類設備) + /// </summary> + [Column("STORAGE_FLAG")] + [StringLength(1)] + [DataMember] + [Required] + [Display(Name = "是否為存儲類設備")] + public string StorageFlag { get; set; } = "N"; + + /// <summary> + /// 狀態(A-可用;S-停用) + /// </summary> + [Column("STATUS")] + [StringLength(1)] + [DataMember] + [Required] + [Display(Name = "狀態")] + public string Status { get; set; } = "A"; + + /// <summary> + /// 特殊種類 + /// (X-錫膏; H-紅膠;G-鋼網) + /// </summary> + [Column("SMT_FLAG")] + [StringLength(1)] + [DataMember] + [Display(Name = "特殊種類")] + public string SmtFlag { get; set; } + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitInfo.cs new file mode 100644 index 00000000..e7904c41 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitInfo.cs @@ -0,0 +1,380 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 設備資料檔 + /// </summary> + + [Table("OUTFIT_INFO", Schema = "JHAMES")] + public partial class OutfitInfo + { + /// <summary> + /// 治具ID + /// </summary> + [Key] + [Column("OUTFIT_ID")] + [DataMember] + [Required] + [Display(Name = "治具")] + public int OutfitID { get; set; } + + /// <summary> + /// 品名ID + /// </summary> + [Column("COMMODITY_ID")] + [DataMember] + [Required] + [Display(Name = "設備種類")] + public int CommodityID { get; set; } + + /// <summary> + /// 種類ID + /// </summary> + [Column("VARIETY_ID")] + [DataMember] + [Required] + [Display(Name = "種類規格")] + public int VarietyID { get; set; } + + /// <summary> + /// 設備編碼 + /// </summary> + [Column("OUTFIT_NO")] + [StringLength(15)] + [DataMember] + [Required] + [Display(Name = "設備編碼")] + public string OutfitNo { get; set; } + + /// <summary> + /// 狀態 + /// </summary> + [Column("STATUS_NO")] + [StringLength(2)] + [DataMember] + [Required] + [Display(Name = "設備狀態")] + public string StatusNo { get; set; } + + /// <summary> + /// 備註 + /// </summary> + [Column("REMARK")] + [StringLength(200)] + [DataMember] + [Display(Name = "備註")] + public string Remark { get; set; } + + /// <summary> + /// 購置日期 + /// </summary> + [Column("BUY_DAY")] + [DataMember] + [Display(Name = "購置日期")] + public DateTime BuyDay { get; set; } + + /// <summary> + /// 預計歸還日期 + /// </summary> + [Column("SCHE_RETURN_DAY")] + [DataMember] + [Display(Name = "預計歸還日期")] + public DateTime ScheReturnDay { get; set; } + + /// <summary> + /// 當前保管人 + /// </summary> + [Column("CUSTODIAN")] + [DataMember] + [Required] + [Display(Name = "當前保管人")] + public int Custondian { get; set; } + + + /// <summary> + /// 區代碼 + /// </summary> + [Column("AREA_NO")] + [StringLength(50)] + [DataMember] + [Display(Name = "區代碼")] + public string AreaNo { get; set; } + + + + /// <summary> + /// 層別代碼 + /// </summary> + [Column("LEVEL_NO")] + [StringLength(12)] + [DataMember] + [Display(Name = "層別代碼")] + public string LevelNo { get; set; } + + + /// <summary> + /// 位置代碼 + /// </summary> + [Column("SITE_NO")] + [StringLength(12)] + [DataMember] + [Display(Name = "位置代碼")] + public string SiteNo { get; set; } + + + /// <summary> + /// 儲位編碼 + /// </summary> + [Column("LOCATION_NO")] + [StringLength(12)] + [DataMember] + [Display(Name = "儲位")] + public string LocationNo { get; set; } + + + /// <summary> + /// 料件料號;財產名稱 + /// </summary> + [Column("PART_NO")] + [StringLength(12)] + [DataMember] + [Display(Name = "財產名稱")] + public string PartNo { get; set; } + + /// <summary> + /// 標識(0-設備;1-料件) + /// </summary> + [Column("TYPE_FLAG")] + [DataMember] + [Required] + [Display(Name = "標識")] + public int TypeFlag { get; set; } = 0; + + /// <summary> + /// 廠別代碼 + /// </summary> + [Column("FACTORY_CODE")] + [StringLength(5)] + [DataMember] + [Display(Name = "廠別")] + public string FactoryCode { get; set; } = "NA"; + + /// <summary> + /// 購置日期 + /// </summary> + [Column("PURCHASE_DATE")] + [DataMember] + [Display(Name = "購置日期")] + public DateTime PuchaseDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 單價 + /// </summary> + [Column("UNIT_PRICE")] + [DataMember] + [Display(Name = "單價")] + public int UnitPrice { get; set; } = 0; + + /// <summary> + /// 質保日期 + /// </summary> + [Column("QUALITY_DATE")] + [DataMember] + [Display(Name = "質保日期")] + public DateTime QualityDate { get; set; } + + /// <summary> + /// 廠商ID + /// </summary> + [Column("VENDOR_ID")] + [DataMember] + [Display(Name = "廠商")] + public int VendorID { get; set; } + + /// <summary> + /// OA單號/管理編號 + /// </summary> + [Column("OA_NO")] + [StringLength(30)] + [DataMember] + [Required] + [Display(Name = "管理編號")] + public string QANo { get; set; } + + /// <summary> + /// 庫存數量 + /// </summary> + [Column("STOCK_QTY")] + [DataMember] + [Required] + [Display(Name = "庫存數量")] + public int StockQty { get; set; } = 1; + + /// <summary> + /// 單位 + /// </summary> + [Column("UNIT")] + [StringLength(5)] + [DataMember] + [Display(Name = "單位")] + public string Unit { get; set; } + + /// <summary> + /// 特殊種類(X:錫膏; H-紅膠儀器編號) + /// </summary> + [Column("LOT_NO")] + [StringLength(20)] + [DataMember] + [Display(Name = "特殊種類")] + public string LotNo { get; set; } + + /// <summary> + /// 鋼網連板數量 + /// </summary> + [Column("BOARDS")] + [DataMember] + [Display(Name = "鋼網連板數量")] + public int Boards { get; set; } + + /// <summary> + /// 治具使用次數 + /// </summary> + [Column("USE_TIMES")] + [DataMember] + [Required] + [Display(Name = "治具使用次數")] + public int UseTimes { get; set; } = 0; + + /// <summary> + /// 治具累計使用次數 + /// </summary> + [Column("TOTAL_TIMES")] + [DataMember] + [Required] + [Display(Name = "治具累計使用次數")] + public int TotalTimes { get; set; } = 0; + + /// <summary> + /// 型號 + /// </summary> + [Column("MODEL_NO")] + [StringLength(50)] + [DataMember] + [Display(Name = "型號")] + public string ModelNo { get; set; } + + /// <summary> + /// 內部條碼 + /// </summary> + [Column("BARCODE_NO")] + [StringLength(50)] + [DataMember] + [Display(Name = "內部條碼")] + public string BarcodeNo { get; set; } + + + /// <summary> + /// 校驗方式 + /// </summary> + [Column("TYPE_ID")] + [DataMember] + [Display(Name = "校驗方式")] + public int TypeID { get; set; } + + /// <summary> + /// 檢驗週期ID + /// </summary> + [Column("CYCLE_ID")] + [DataMember] + [Display(Name = "檢驗週期")] + public int CycleID { get; set; } + + /// <summary> + /// 外校費用 + /// </summary> + [Column("FOREIGN_EXPENSES")] + [StringLength(10)] + [DataMember] + [Display(Name = "外校費用")] + public string ForeignExpenses { get; set; } + + + /// <summary> + /// 校驗日期 + /// </summary> + [Column("CHECK_DATE")] + [DataMember] + [Display(Name = "校驗日期")] + public DateTime CheckDate { get; set; } + + + /// <summary> + /// 下次校驗日期 + /// </summary> + [Column("NEXT_DATE")] + [DataMember] + [Display(Name = "下次校驗日期")] + public DateTime NextDate { get; set; } + + + /// <summary> + /// 是否為母儀(Y/N) + /// </summary> + [Column("MASTER")] + [StringLength(2)] + [DataMember] + [Display(Name = "是否為母儀")] + public string Master { get; set; } + + /// <summary> + /// 當前保管人 + /// </summary> + [Column("CUSTODIAN_NAME")] + [StringLength(50)] + [DataMember] + [Display(Name = "保管人")] + public string CustodianName { get; set; } + /// <summary> + /// 當前保管人部門 + /// </summary> + [Column("CUSTODIAN_DEPT")] + [StringLength(50)] + [DataMember] + [Display(Name = "保管部門")] + public string CustodianDept { get; set; } + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitLevelInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitLevelInfo.cs new file mode 100644 index 00000000..3764a2b8 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitLevelInfo.cs @@ -0,0 +1,77 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; +using Microsoft.EntityFrameworkCore; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 層別資料檔 + /// </summary> + [Keyless] + [Table("OUTFIT_LEVEL_INFO", Schema = "JHAMES")] + public partial class OutfitLevelInfo + { + /// <summary> + /// 設備規格ID + /// </summary> + //[Key] + //[Column("VARIETY_ID", TypeName = "NUMBER")] + //[DataMember] + //[Required] + //public int VarityID { get; set; } + + /// <summary> + /// 區域代碼 + /// </summary> + [Column("LEVEL_NO")] + [StringLength(1)] + [DataMember] + [Required] + [Display(Name = "層別代碼")] + public string LevelNo { get; set; } + + + /// <summary> + /// 層別描述 + /// </summary> + [Column("LEVEL_DESC")] + [StringLength(50)] + [DataMember] + [Required] + [Display(Name = "層別描述")] + public string LevelDesc { get; set; } + + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitSiteInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitSiteInfo.cs new file mode 100644 index 00000000..3e411899 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitSiteInfo.cs @@ -0,0 +1,68 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; +using Microsoft.EntityFrameworkCore; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 位置資料檔 + /// </summary> + [Keyless] + [Table("OUTFIT_SITE_INFO", Schema = "JHAMES")] + public partial class OutfitSiteInfo + { + /// <summary> + /// 位置代碼 + /// </summary> + [Column("SITE_NO")] + [StringLength(2)] + [DataMember] + [Required] + [Display(Name = "位置代碼")] + public string SiteNo { get; set; } + + + /// <summary> + /// 位置描述 + /// </summary> + [Column("SITE_DESC")] + [StringLength(50)] + [DataMember] + [Required] + [Display(Name = "位置描述")] + public string SiteDesc { get; set; } + + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitVarityInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitVarityInfo.cs new file mode 100644 index 00000000..2afd0730 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitVarityInfo.cs @@ -0,0 +1,119 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 設備規格資料檔 + /// </summary> + [Table("OUTFIT_VARIETY_INFO", Schema = "JHAMES")] + public partial class OutfitVarityInfo + { + /// <summary> + /// 設備規格ID + /// </summary> + [Key] + [Column("VARIETY_ID")] + [DataMember] + [Required] + public int VarityID { get; set; } + + /// <summary> + /// 設備種類ID + /// </summary> + [Column("COMMODITY_ID")] + [DataMember] + [Required] + [Display(Name = "設備種類")] + public int CommodityID { get; set; } + + /// <summary> + /// 規格代碼 + /// </summary> + [Column("VARIETY_NO")] + [StringLength(2)] + [DataMember] + [Required] + [Display(Name = "規格代碼")] + public string VarityNo { get; set; } + + + /// <summary> + /// 規格名稱 + /// </summary> + [Column("VARIETY_NAME")] + [StringLength(20)] + [DataMember] + [Required] + [Display(Name = "規格名稱")] + public string VarityName { get; set; } + + /// <summary> + /// 安全庫存數量 + /// </summary> + [Column("SAFE_STOCK")] + [DataMember] + [Required] + [Display(Name = "安全庫存數量")] + public int SafeStock { get; set; } = 0; + + /// <summary> + /// 狀態(A-可用;S-停用) + /// </summary> + [Column("STATUS")] + [StringLength(1)] + [DataMember] + [Required] + [Display(Name = "狀態")] + public string Status { get; set; } = "A"; + + /// <summary> + /// 預定試用次數 + /// </summary> + [Column("USE_LIMIT_TIMES")] + [DataMember] + [Required] + [Display(Name = "預定試用次數")] + public int UseLimitTimes { get; set; } = 0; + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + + + /// <summary> + /// 製程單位主檔 + /// </summary> + [ForeignKey("CommodityID")] + public virtual OutfitCommodityInfo Commodity { get; set; } + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/OutfitVendorInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/OutfitVendorInfo.cs new file mode 100644 index 00000000..c92e6f6b --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/OutfitVendorInfo.cs @@ -0,0 +1,94 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +#nullable disable + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// <summary> + /// 廠商資料檔 + /// </summary> + + [Table("OUTFIT_VENDOR_INFO", Schema = "JHAMES")] + public partial class OutfitVendorInfo + { + /// <summary> + /// 廠商ID + /// </summary> + [Key] + [Column("VENDOR_ID")] + [DataMember] + [Required] + public int VendorID { get; set; } + + /// <summary> + /// 廠商名稱 + /// </summary> + [Column("VENDOR_NAME")] + [StringLength(100)] + [DataMember] + [Required] + [Display(Name = "廠商名稱")] + public string VendorName { get; set; } + + + /// <summary> + /// 連絡電話 + /// </summary> + [Column("TEL_NO")] + [StringLength(50)] + [DataMember] + [Display(Name = "連絡電話")] + public string TelNo { get; set; } + + /// <summary> + /// 地址 + /// </summary> + [Column("ADDRESS")] + [StringLength(100)] + [DataMember] + [Display(Name = "地址")] + public string Address { get; set; } + + + /// <summary> + /// 備註 + /// </summary> + [Column("MEMO")] + [StringLength(300)] + [DataMember] + [Display(Name = "備註")] + public string Memo { get; set; } + + + /// <summary> + /// 創建者ID + /// </summary> + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } = 0; + + /// <summary> + /// 創建日期 + /// </summary> + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } = System.DateTime.Now; + + /// <summary> + /// 更新者ID + /// </summary> + [Column("UPDATE_USERID")] + [DataMember] + public int UpdateUserID { get; set; } = 0; + + /// <summary> + /// 更新日期 + /// </summary> + [Column("UPDATE_DATE", TypeName = "DATE")] + [DataMember] + public DateTime UpdateDate { get; set; } = System.DateTime.Now; + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMESContext.cs b/AMESCoreStudio.WebApi/Models/AMESContext.cs index 46052736..696c9995 100644 --- a/AMESCoreStudio.WebApi/Models/AMESContext.cs +++ b/AMESCoreStudio.WebApi/Models/AMESContext.cs @@ -741,6 +741,11 @@ namespace AMESCoreStudio.WebApi /// </summary> public virtual DbSet<OutfitVendorInfo> OutfitVendorInfoes { get; set; } + /// <summary> + /// 治具資料檔 + /// </summary> + public virtual DbSet<OutfitInfo> OutfitInfoes { get; set; } + } 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 73dc25f2..f56a9a67 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 162e7459..81f79226 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 a027d025..cef2726f 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 ab5ca1c1..29fc7899 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 9725bef2..56e1a327 100644 --- a/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml +++ b/AMESCoreStudio.WebApi/bin/Debug/netcoreapp3.1/AMESCoreStudio.WebApi.xml @@ -2361,19 +2361,27 @@ <param name="id"></param> <returns></returns> </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.GetOutfitCommodityInfoByQuery(System.Int32,System.String)"> + <summary> + + </summary> + <param name="TypeFlag"></param> + <param name="Status"></param> + <returns></returns> + </member> <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.PutOutfitCommodityInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo)"> <summary> </summary> <param name="id"></param> - <param name="workGroup"></param> + <param name="OutfitCommodityInfo"></param> <returns></returns> </member> <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.PostOutfitCommodityInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo)"> <summary> 新增资料 </summary> - <param name="workGroup"></param> + <param name="OutfitCommodityInfo"></param> <returns></returns> </member> <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitCommodityInfoesController.DeleteOutfitCommodityInfo(System.Int32)"> @@ -2383,6 +2391,165 @@ <param name="id"></param> <returns></returns> </member> + <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController"> + <summary> + 工作群組維護 + </summary> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.#ctor(AMESCoreStudio.WebApi.AMESContext)"> + <summary> + + </summary> + <param name="context"></param> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.GetOutfitInfo"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.GetOutfitInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.GetOutfitInfoByQuery(System.Int32,System.Int32,System.Int32,System.String,System.String,System.String)"> + <summary> + + </summary> + <param name="TypeFlag"></param> + <param name="CommodityID"></param> + <param name="VarityID"></param> + <param name="Status"></param> + <param name="QANo"></param> + <param name="PartNo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.PutOutfitInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitInfo)"> + <summary> + + </summary> + <param name="id"></param> + <param name="OutfitInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.PostOutfitInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitInfo)"> + <summary> + 新增资料 + </summary> + <param name="OutfitInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitInfoesController.DeleteOutfitInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController"> + <summary> + 工作群組維護 + </summary> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.#ctor(AMESCoreStudio.WebApi.AMESContext)"> + <summary> + + </summary> + <param name="context"></param> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.GetOutfitVarityInfo"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.GetOutfitVarityInfoByQuery(System.Int32,System.Int32,System.String)"> + <summary> + + </summary> + <param name="TypeFlag"></param> + <param name="CommodityID"></param> + <param name="Status"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.GetOutfitVarityInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.PutOutfitVarityInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo)"> + <summary> + + </summary> + <param name="id"></param> + <param name="OutfitVarityInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.PostOutfitVarityInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo)"> + <summary> + 新增资料 + </summary> + <param name="OutfitVarityInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVarityInfoesController.DeleteOutfitVarityInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController"> + <summary> + 工作群組維護 + </summary> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.#ctor(AMESCoreStudio.WebApi.AMESContext)"> + <summary> + + </summary> + <param name="context"></param> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.GetOutfitVendorInfo"> + <summary> + + </summary> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.GetOutfitVendorInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.PutOutfitVendorInfo(System.Int32,AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo)"> + <summary> + + </summary> + <param name="id"></param> + <param name="OutfitVendorInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.PostOutfitVendorInfo(AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo)"> + <summary> + 新增资料 + </summary> + <param name="OutfitVendorInfo"></param> + <returns></returns> + </member> + <member name="M:AMESCoreStudio.WebApi.Controllers.AMES.OutfitVendorInfoesController.DeleteOutfitVendorInfo(System.Int32)"> + <summary> + + </summary> + <param name="id"></param> + <returns></returns> + </member> <member name="T:AMESCoreStudio.WebApi.Controllers.AMES.PartMapsController"> <summary> @@ -7240,6 +7407,11 @@ 廠商資料檔 </summary> </member> + <member name="P:AMESCoreStudio.WebApi.AMESContext.OutfitInfoes"> + <summary> + 治具資料檔 + </summary> + </member> <member name="T:AMESCoreStudio.WebApi.Models.AMES.BarcodeChange"> <summary> 條碼變更資料表 @@ -10393,6 +10565,11 @@ 0:設備/料件; 2:耗材 </summary> </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo.StorageFlag"> + <summary> + 是否為存儲類設備) + </summary> + </member> <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitCommodityInfo.Status"> <summary> 狀態(A-可用;S-停用) @@ -10424,6 +10601,216 @@ 更新日期 </summary> </member> + <member name="T:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo"> + <summary> + 設備資料檔 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.OutfitID"> + <summary> + 治具ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CommodityID"> + <summary> + 品名ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.VarietyID"> + <summary> + 種類ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.OutfitNo"> + <summary> + 設備編碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.StatusNo"> + <summary> + 狀態 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Remark"> + <summary> + 備註 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.BuyDay"> + <summary> + 購置日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.ScheReturnDay"> + <summary> + 預計歸還日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Custondian"> + <summary> + 當前保管人 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.AreaNo"> + <summary> + 區代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.LevelNo"> + <summary> + 層別代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.SiteNo"> + <summary> + 位置代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.LocationNo"> + <summary> + 儲位編碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.PartNo"> + <summary> + 料件料號;財產名稱 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.TypeFlag"> + <summary> + 標識(0-設備;1-料件) + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.FactoryCode"> + <summary> + 廠別代碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.PuchaseDate"> + <summary> + 購置日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UnitPrice"> + <summary> + 單價 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.QualityDate"> + <summary> + 質保日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.VendorID"> + <summary> + 廠商ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.QANo"> + <summary> + OA單號/管理編號 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.StockQty"> + <summary> + 庫存數量 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Unit"> + <summary> + 單位 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.LotNo"> + <summary> + 特殊種類(X:錫膏; H-紅膠儀器編號) + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Boards"> + <summary> + 鋼網連板數量 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UseTimes"> + <summary> + 治具使用次數 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.TotalTimes"> + <summary> + 治具累計使用次數 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.ModelNo"> + <summary> + 型號 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.BarcodeNo"> + <summary> + 內部條碼 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.TypeID"> + <summary> + 校驗方式 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CycleID"> + <summary> + 檢驗週期ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.ForeignExpenses"> + <summary> + 外校費用 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CheckDate"> + <summary> + 校驗日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.NextDate"> + <summary> + 下次校驗日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.Master"> + <summary> + 是否為母儀(Y/N) + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CustodianName"> + <summary> + 當前保管人 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CustodianDept"> + <summary> + 當前保管人部門 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CreateUserID"> + <summary> + 創建者ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.CreateDate"> + <summary> + 創建日期 + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UpdateUserID"> + <summary> + 更新者ID + </summary> + </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitInfo.UpdateDate"> + <summary> + 更新日期 + </summary> + </member> <member name="T:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo"> <summary> 設備規格資料檔 @@ -10459,7 +10846,7 @@ 狀態(A-可用;S-停用) </summary> </member> - <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo.UseLimitDays"> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo.UseLimitTimes"> <summary> 預定試用次數 </summary> @@ -10484,6 +10871,11 @@ 更新日期 </summary> </member> + <member name="P:AMESCoreStudio.WebApi.Models.AMES.OutfitVarityInfo.Commodity"> + <summary> + 製程單位主檔 + </summary> + </member> <member name="T:AMESCoreStudio.WebApi.Models.AMES.OutfitVendorInfo"> <summary> 廠商資料檔