diff --git a/AMESCoreStudio.Web/Controllers/WHSController.cs b/AMESCoreStudio.Web/Controllers/WHSController.cs new file mode 100644 index 00000000..5653bbb1 --- /dev/null +++ b/AMESCoreStudio.Web/Controllers/WHSController.cs @@ -0,0 +1,1275 @@ +using Microsoft.AspNetCore.Mvc; +using System.Threading.Tasks; +using Microsoft.Extensions.Logging; +using AMESCoreStudio.Web.Models; +using Newtonsoft.Json; +using AMESCoreStudio.WebApi; +using System.Collections.Generic; +using Microsoft.AspNetCore.Mvc.Rendering; +using AMESCoreStudio.WebApi.Models.AMES; +using AMESCoreStudio.WebApi.Models.BAS; +using AMESCoreStudio.CommonTools.Result; + +namespace AMESCoreStudio.Web.Controllers +{ + public class WHSController : Controller + { + private readonly ILogger _logger; + public readonly IWHS _whsApi; + public readonly IBAS _basApi; + public readonly IPCS _pcsApi; + public readonly ISYS _sysApi; + + public WHSController(ILogger logger, IWHS whsApi,IBAS basApi, IPCS pcsApi, ISYS sysApi) + { + _logger = logger; + _whsApi = whsApi; + _basApi = basApi; + _pcsApi = pcsApi; + _sysApi = sysApi; + } + + private async Task GetResponseDeptList() + { + var result = await _basApi.GetRepairResponsibleUnitses(); + + var ResponseDeptList = new List(); + + for (int i = 0; i < result.Count; i++) + { + ResponseDeptList.Add(new SelectListItem(result[i].RRDesc, result[i].RRID.ToString())); + } + ViewBag.ResponseDeptList = ResponseDeptList; + } + + private async Task GetSectionList() + { + var result = await _basApi.GetFactoryUnits(); + + var SectionList = new List(); + + for (int i = 0; i < result.Count; i++) + { + SectionList.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString())); + } + ViewBag.SectionList = SectionList; + } + + private async Task GetErrorGroupList() + { + var result = await _whsApi.GetWorkClasses(); + + var ErrorGroupList = new List(); + + //for (int i = 0; i < result.Count; i++) + //{ + // ErrorGroupList.Add(new SelectListItem(result[i].GroupName, result[i].GroupNo.ToString())); + //} + ViewBag.ErrorGroupList = ErrorGroupList; + } + + private async Task GetErrorClassList(string no) + { + var result = await _whsApi.GetErrorClassesByGroup(no); + + var ErrorClassList = new List(); + for (int i = 0; i < result.Count; i++) + { + ErrorClassList.Add(new SelectListItem(result[i].ClassName, result[i].ClassNo.ToString())); + } + ViewBag.ErrorClassList = ErrorClassList; + } + + [HttpPost] + public async Task GetErrorClassJson(string group_no) + { + var result = await _whsApi.GetErrorClassesByGroup(group_no); + + var item = new List(); + item.Add(new SelectListItem("全部", "*")); + + for (int i = 0; i < result.Count; i++) + { + item.Add(new SelectListItem(result[i].ClassName, result[i].ClassNo.ToString())); + } + //将数据Json化并传到前台视图 + return Json(new { data = item }); + } + + private async Task GetNGClassList(string no) + { + var result = await _whsApi.GetNGClassesByGroup(no); + + var NGClassList = new List(); + for (int i = 0; i < result.Count; i++) + { + NGClassList.Add(new SelectListItem(result[i].NGClassName, result[i].NGClassNo.ToString())); + } + ViewBag.NGClassList = NGClassList; + } + + [HttpPost] + public async Task GetNGClassJson(string group_no) + { + var result = await _whsApi.GetNGClassesByGroup(group_no); + + var item = new List(); + item.Add(new SelectListItem("全部", "*")); + + for (int i = 0; i < result.Count; i++) + { + item.Add(new SelectListItem(result[i].NGClassName, result[i].NGClassNo.ToString())); + } + //将数据Json化并传到前台视图 + return Json(new { data = item }); + } + + private void GetFlagList() + { + + var FlagList = new List(); + + + FlagList.Add(new SelectListItem("Y", "Y")); + FlagList.Add(new SelectListItem("N", "N")); + + ViewBag.FlagList = FlagList; + } + private async Task GetWorkClassList() + { + var result = await _whsApi.GetWorkGroups(); + + var GroupList = new List(); + for (int i = 0; i < result.Count; i++) + { + GroupList.Add(new SelectListItem(result[i].GroupName, result[i].GroupID.ToString())); + } + ViewBag.GroupList = GroupList; + } + private async Task GetFactoryUnitsList() + { + var result = await _basApi.GetFactoryUnits(); + + var UnitItems = new List(); + UnitItems.Add(new SelectListItem("全部", "0")); + 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 GetFactoryUnitsList2() + { + var result = await _basApi.GetFactoryUnits(); + + var UnitItems = new List(); + for (int i = 0; i < result.Count; i++) + { + UnitItems.Add(new SelectListItem(result[i].UnitName, result[i].UnitNo.ToString())); + } + UnitItems.Add(new SelectListItem("其他", "0")); + + ViewBag.FactoryUnit = UnitItems; + } + private async Task GetFactoryList() + { + var result = await _basApi.GetFactoryInfoes(); + + var FactoryItems = new List(); + for (int i = 0; i < result.Count; i++) + { + FactoryItems.Add(new SelectListItem(result[i].FactoryNameCh, result[i].FactoryID.ToString())); + } + ViewBag.FactoryList = FactoryItems; + } + private async Task GetStationList() + { + var result = await _basApi.GetStationses(); + + var StationItems = new List(); + 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(); + 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(); + 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 void GetSideList() + { + + var SideItems = new List() ; + SideItems.Add(new SelectListItem("N/A", "N/A")); + SideItems.Add(new SelectListItem("正面", "正面")); + SideItems.Add(new SelectListItem("背面", "背面")); + + ViewBag.SideList = SideItems; + } + private void GetClassList() + { + + var ClassItems = new List(); + ClassItems.Add(new SelectListItem("白班", "1")); + ClassItems.Add(new SelectListItem("夜班", "2")); + + ViewBag.ClassList = ClassItems; + } + /// + /// 正背面 + /// + /// + private async Task GetMFGType() + { + var result = await _pcsApi.GetMFGTypes(); + + var MFGType = new List(); + for (int i = 0; i < result.Count; i++) + { + MFGType.Add(new SelectListItem(result[i].MFGTypeName, result[i].MFGTypeNO.ToString())); + } + ViewBag.MFGTypeList = MFGType; + } + + #region WHS001工作群組維護相關 + + public IActionResult WHS001() + { + return View(); + } + + //新增頁面 + public IActionResult WHS001C() + { + GetFlagList(); + return View(); + } + + //修改页面 + [HttpGet] + public async Task WHS001UAsync(int id) + { + GetFlagList(); + var result = await _whsApi.GetWorkGroups(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task WHS001DAsync(int id) + { + var result = await _whsApi.DeleteWorkGroups(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task WHS001CSaveAsync(WorkGroup model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostWorkGroups(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("WHS001C", model); + } + + public async Task WHS001USaveAsync(WorkGroup model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutWorkGroups(model.GroupID, 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("WHS001U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetWorkGroupsAsync() + { + var result = await _whsApi.GetWorkGroups(); + + 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 WHS002條碼狀態維護相關 + + public IActionResult WHS002() + { + return View(); + } + + //新增頁面 + public async Task WHS002C() + { + await GetWorkClassList(); + return View(); + } + + //修改页面 + [HttpGet] + public async Task WHS002UAsync(int id) + { + await GetWorkClassList(); + var result = await _whsApi.GetWorkClasses(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task WHS002DAsync(int id) + { + var result = await _whsApi.DeleteWorkClass(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task WHS002CSaveAsync(WorkClass model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostWorkClass(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("WHS002C", model); + } + + public async Task WHS002USaveAsync(WorkClass model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutWorkClass(model.ClassID, 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("WHS002U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetWorkClassesAsync() + { + var result = await _whsApi.GetWorkClasses(); + + 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 WHS003/WHS005標準工時維護相關 + public async Task WHS003() + { + await GetFactoryUnitsList(); + return View(); + } + //新增頁面 + public async Task WHS003C(string unit,string lineID) + { + await GetStationList(); + //await GetMFGType(); + ViewBag.LineID = lineID; + ViewBag.UnitNo = unit; + GetSideList(); + return View(); + } + //修改页面 + [HttpGet] + public async Task WHS003UAsync(int id) + { + await GetStationList(); + GetSideList(); + var result = await _whsApi.GetStandardWorkTime(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + public async Task WHS003DAsync(int id) + { + var result = await _whsApi.DeleteStandardWorkTime(id); + return Json(new Result() { success = true, msg = "" }); + } + [HttpPost] + public async Task WHS003CSaveAsync(StandardWorkTime model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostStandardWorkTime(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("WHS003C", model); + } + public async Task WHS003USaveAsync(StandardWorkTime model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutStandardWorkTime(model.StandardID, 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("WHS003U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetStandardWorkTimesAsync() + { + var result = await _whsApi.GetStandardWorkTimes(); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetStandardWorkTimes2Async(string u,int l,string i) + { + if( l == 0) + return Json(new Table() { count = 0, data = null }); + if (string.IsNullOrEmpty(i)) + i = "Null"; + if (string.IsNullOrEmpty(u)) + u = "Null"; + if (u=="0") + u = "Null"; + + var result = await _whsApi.GetStandardWorkTimes003(u,l,i); + 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 WHS005() + { + await GetFactoryUnitsList(); + return View(); + } + public async Task GetStandardWorkTimes005Async(string u, string l, string i) + { + if (l == "") + return Json(new Table() { count = 0, data = null }); + if (string.IsNullOrEmpty(i)) + i = "Null"; + if (string.IsNullOrEmpty(u)) + u = "Null"; + + var result = await _whsApi.GetStandardWorkTimes005(u, l, i); + 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 WHS006異常類別維護相關 + + public async Task WHS006() + { + await GetErrorGroupList(); + + return View(); + } + + //新增頁面 + public async Task WHS006C(string id) + { + await GetErrorGroupList(); + + var model = new ErrorClass(); + if (id != null) + { + if (id != "") + { + model.GroupNo = id; + } + } + + return View(model); + } + + //修改页面 + [HttpGet] + public async Task WHS006UAsync(string id) + { + await GetErrorGroupList(); + var result = await _whsApi.GetErrorClass(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task WHS006DAsync(string id) + { + var result = await _whsApi.DeleteErrorClass(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task WHS006CSaveAsync(ErrorClass model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostErrorClass(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("WHS006C", model); + } + + public async Task WHS006USaveAsync(ErrorClass model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutErrorClass(model.ClassNo, 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("WHS006U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetErrorClassesByGroupAsync(string errorGroupNo) + { + if (errorGroupNo == null) + { + errorGroupNo = "*"; + } + var result = await _whsApi.GetErrorClassesByGroup(errorGroupNo); + + 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 WHS007異常原因維護相關 + + public async Task WHS007(string groupNo) + { + await GetErrorGroupList(); + await GetErrorClassList(groupNo); + + return View(); + } + + //新增頁面 + public async Task WHS007C(string id) + { + string[] param = id.Split(','); + + await GetErrorClassList(param[1]); + await GetResponseDeptList(); + await GetSectionList(); + + var model = new ErrorReason(); + if (id != null) + { + if (id != "") + { + model.ClassNo = id; + } + } + + return View(model); + } + + //修改页面 + [HttpGet] + public async Task WHS007UAsync(string id) + { + string[] param = id.Split(','); + await GetErrorClassList(param[1]); + + await GetResponseDeptList(); + await GetSectionList(); + + var result = await _whsApi.GetErrorReason(param[0]); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task WHS007DAsync(string id) + { + var result = await _whsApi.DeleteErrorReason(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task WHS007CSaveAsync(ErrorReason model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostErrorReason(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("WHS007C", model); + } + + public async Task WHS007USaveAsync(ErrorReason model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutErrorReason(model.ReasonNo, 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("WHS007U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetErrorReasonsByClassAsync(string errorClassNo) + { + if (errorClassNo == null) + { + errorClassNo = "*"; + } + var result = await _whsApi.GetErrorReasonsByClass(errorClassNo); + + 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 WHS008工時援入/外維護相關 + + public async Task WHS008() + { + await GetFactoryUnitsList2(); + await GetFactoryList(); + return View(); + } + //新增頁面 + public async Task WHS008C() + { + //製程單位 + await GetFactoryUnitsList2(); + //廠別 + await GetFactoryList(); + //線別 + await GetLineList(); + //站別 + await GetStationList(); + //班別 + GetClassList(); + //其他部門 + await GetDeptList(); + return View(); + } + //修改页面 + [HttpGet] + public async Task WHS008UAsync(int id,string type) + { + //製程單位 + await GetFactoryUnitsList2(); + //廠別 + await GetFactoryList(); + //線別 + await GetLineList(); + //站別 + await GetStationList(); + //班別 + GetClassList(); + //其他部門 + await GetDeptList(); + ViewBag.type = type; + + var result = await _whsApi.GetSupportUser(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + public async Task WHS008DAsync(int id) + { + var result = await _whsApi.DeleteSupportUser(id); + return Json(new Result() { success = true, msg = "" }); + } + [HttpPost] + public async Task WHS008CSaveAsync(SupportUser model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostSupportUser(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("WHS008C", model); + } + public async Task WHS008USaveAsync(SupportUser model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutSupportUser(model.SupportID, 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("WHS008U", model); + } + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetSupportUsersAsync() + { + var result = await _whsApi.GetSupportUsers(); + + 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 GetSupportUser2Async(string f, string type, string unit, string sd, string ed) + { + + var result = await _whsApi.GetSupportUserByQuery( f,type, unit, sd, ed); + + 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 WHS009異常類別維護相關 + + public async Task WHS009() + { + await GetMFGType(); + + return View(); + } + + //新增頁面 + public async Task WHS009C(string id) + { + await GetMFGType(); + + var model = new NGClass(); + if (id != null) + { + if (id != "") + { + model.NGGroupNo = id; + } + } + + return View(model); + } + + //修改页面 + [HttpGet] + public async Task WHS009UAsync(string id) + { + await GetMFGType(); + var result = await _whsApi.GetNGClass(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task WHS009DAsync(string id) + { + var result = await _whsApi.DeleteNGClass(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task WHS009CSaveAsync(NGClass model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostNGClass(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("WHS009C", model); + } + + public async Task WHS009USaveAsync(NGClass model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutNGClass(model.NGClassNo, 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("WHS009U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetNGClassesByGroupAsync(string ngGroupNo, int page = 1, int limit = 10) + { + if (ngGroupNo == null) + { + ngGroupNo = "*"; + } + + var result = await _whsApi.GetNGClassesByGroup(ngGroupNo, page, limit); + var result_total = await _whsApi.GetNGClassesByGroup(ngGroupNo, 0, limit); + + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result_total.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + #endregion + + #region WHS011重工標準工時維護相關 + + public async Task WHS011() + { + //站別 + await GetStationList(); + return View(); + } + + //新增頁面 + public async Task WHS011C() + { + + //站別 + await GetStationList(); + + return View(); + } + + //修改页面 + [HttpGet] + public async Task WHS011UAsync(int id) + { + //站別 + await GetStationList(); + + var result = await _whsApi.GetStandardWorkTimeRework(id); + + if (result.Count == 0) + { + return View(); + } + return View(result[0]); + } + + public async Task WHS011DAsync(int id) + { + var result = await _whsApi.DeleteStandardWorkTimeRework(id); + return Json(new Result() { success = true, msg = "" }); + } + + //頁面提交,id=0 添加,id>0 修改 + [HttpPost] + public async Task WHS011CSaveAsync(StandardWorkTimeRework model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PostStandardWorkTimeRework(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("WHS011C", model); + } + + public async Task WHS011USaveAsync(StandardWorkTimeRework model) + { + if (ModelState.IsValid) + { + IResultModel result; + + result = await _whsApi.PutStandardWorkTimeRework(model.ReworkStandardID, 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("WHS011U", model); + } + + [ResponseCache(Duration = 0)] + [HttpGet] + public async Task GetStandardWorkTimeReworkByQueryAsync(string wipno, int sid) + { + if (wipno == null || wipno == "0") + { + wipno = "*"; + } + + var result = await _whsApi.GetStandardWorkTimeReworkByQuery(wipno, sid); + + if (result.Count > 0) + { + return Json(new Table() { code = 0, msg = "", data = result, count = result.Count }); + } + + return Json(new Table() { count = 0, data = null }); + } + + #endregion + + } +} diff --git a/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs b/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs new file mode 100644 index 00000000..46fa3176 --- /dev/null +++ b/AMESCoreStudio.Web/HttpApis/AMES/IWHS.cs @@ -0,0 +1,375 @@ +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; + +namespace AMESCoreStudio.Web +{ + [JsonReturn] + public interface IWHS:IHttpApi + { + #region WHS001 工作群組維護 + + /// + /// 新增工作群組 + /// + /// + [WebApiClient.Attributes.HttpPost("api/WorkGroups")] + ITask> PostWorkGroups([FromBody, RawJsonContent] string model); + + /// + /// 更新工作群組 + /// + /// + [WebApiClient.Attributes.HttpPut("api/WorkGroups/{id}")] + ITask> PutWorkGroups(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除工作群組 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/WorkGroups/{id}")] + ITask> DeleteWorkGroups(int id); + + /// + /// 根據ID獲取指定工單狀態資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/WorkGroups/{id}")] + ITask> GetWorkGroups(int id); + + /// + /// 獲取工單狀態資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/WorkGroups")] + ITask> GetWorkGroups(); + + #endregion + + #region WHS002 工時類別維護 + + /// + /// 新增工時類別 + /// + /// + [WebApiClient.Attributes.HttpPost("api/WorkClasses")] + ITask> PostWorkClass([FromBody, RawJsonContent] string model); + + /// + /// 更新工時類別 + /// + /// + [WebApiClient.Attributes.HttpPut("api/WorkClasses/{id}")] + ITask> PutWorkClass(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除工時類別 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/WorkClasses/{id}")] + ITask> DeleteWorkClass(int id); + + /// + /// 根據ID獲取指定工時類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/WorkClasses/{id}")] + ITask> GetWorkClasses(int id); + + /// + /// 獲取工時類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/WorkClasses")] + ITask> GetWorkClasses(); + + #endregion + + #region WHS003 標準工時維護 + + /// + /// 新增標準工時 + /// + /// + [WebApiClient.Attributes.HttpPost("api/StandardWorkTimes")] + ITask> PostStandardWorkTime([FromBody, RawJsonContent] string model); + + /// + /// 更新標準工時 + /// + /// + [WebApiClient.Attributes.HttpPut("api/StandardWorkTimes/{id}")] + ITask> PutStandardWorkTime(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除標準工時 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/StandardWorkTimes/{id}")] + ITask DeleteStandardWorkTime(int id); + + /// + /// 根據ID獲取指定標準工時資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes/{id}")] + ITask> GetStandardWorkTime(int id); + + /// + /// 獲取標準工時資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes")] + ITask> GetStandardWorkTimes(); + + /// + /// 獲取標準工時資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes/WHS003/{u}/{l}/{i}")] + ITask> GetStandardWorkTimes003(string u,int l,string i); + + /// + /// 獲取標準工時資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimes/WHS005/{u}/{l}/{i}")] + ITask> GetStandardWorkTimes005(string u, string l, string i); + #endregion + + #region WHS006 異常類別維護 + + /// + /// 新增異常類別 + /// + /// + [WebApiClient.Attributes.HttpPost("api/ErrorClasses")] + ITask> PostErrorClass([FromBody, RawJsonContent] string model); + + /// + /// 更新異常類別 + /// + /// + [WebApiClient.Attributes.HttpPut("api/ErrorClasses/{id}")] + ITask> PutErrorClass(string id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除異常類別 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/ErrorClasses/{id}")] + ITask> DeleteErrorClass(string id); + + /// + /// 根據ID獲取指定異常類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/ErrorClasses/{id}")] + ITask> GetErrorClass(string id); + + /// + /// 獲取異常類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/ErrorClasses")] + ITask> GetErrorClasses(); + + /// + /// 根据群組代碼獲取類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/ErrorClasses/Group/{no}")] + ITask> GetErrorClassesByGroup(string no); + + #endregion + + #region WHS007 異常原因維護 + + /// + /// 新增異常原因 + /// + /// + [WebApiClient.Attributes.HttpPost("api/ErrorReasons")] + ITask> PostErrorReason([FromBody, RawJsonContent] string model); + + /// + /// 更新異常原因 + /// + /// + [WebApiClient.Attributes.HttpPut("api/ErrorReasons/{id}")] + ITask> PutErrorReason(string id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除異常原因 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/ErrorReasons/{id}")] + ITask> DeleteErrorReason(string id); + + /// + /// 根據ID獲取指定異常原因資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/ErrorReasons/{id}")] + ITask> GetErrorReason(string id); + + /// + /// 獲取異常原因資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/ErrorReasons")] + ITask> GetErrorReasons(); + + /// + /// 根据類別代碼獲取原因資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/ErrorReasons/Class/{no}")] + ITask> GetErrorReasonsByClass(string no); + + #endregion + + #region WHS008 工時援入/外資料維護 + + /// + /// 新增工時援入/外 + /// + /// + [WebApiClient.Attributes.HttpPost("api/SupportUsers")] + ITask> PostSupportUser([FromBody, RawJsonContent] string model); + + /// + /// 更新工時援入/外 + /// + /// + [WebApiClient.Attributes.HttpPut("api/SupportUsers/{id}")] + ITask> PutSupportUser(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除工時援入/外 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/SupportUsers/{id}")] + ITask> DeleteSupportUser(int id); + + /// + /// 獲取指定工時援入/外群組資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/SupportUsers/")] + ITask> GetSupportUsers(); + + /// + /// 根據ID獲取指定工時援入/外群組資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/SupportUsers/{id}")] + ITask> GetSupportUser(int id); + + /// + /// 援入援外綜合查詢 + /// + /// + [WebApiClient.Attributes.HttpGet("api/SupportUsers/Query/{f}/{type}/{unit}/{sd}/{ed}")] + ITask> GetSupportUserByQuery(string f, string type, string unit, string sd, string ed); + + #endregion + + #region WHS009 不良現象類別維護 + + /// + /// 新增不良現象類別 + /// + /// + [WebApiClient.Attributes.HttpPost("api/NGClasses")] + ITask> PostNGClass([FromBody, RawJsonContent] string model); + + /// + /// 更新不良現象類別 + /// + /// + [WebApiClient.Attributes.HttpPut("api/NGClasses/{id}")] + ITask> PutNGClass(string id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除不良現象類別 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/NGClasses/{id}")] + ITask> DeleteNGClass(string id); + + /// + /// 根據ID獲取指定不良現象類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/NGClasses/{id}")] + ITask> GetNGClass(string id); + + /// + /// 獲取不良現象類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/NGClasses")] + ITask> GetNGClasses(); + + /// + /// 根据群組代碼獲取不良現象類別資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/NGClasses/Group/{no}")] + ITask> GetNGClassesByGroup(string no, int page = 1, int limit = 10); + + #endregion + + #region WHS011 重工標準工時維護 + + /// + /// 新增重工標準工時 + /// + /// + [WebApiClient.Attributes.HttpPost("api/StandardWorkTimeReworks")] + ITask> PostStandardWorkTimeRework([FromBody, RawJsonContent] string model); + + /// + /// 更新重工標準工時 + /// + /// + [WebApiClient.Attributes.HttpPut("api/StandardWorkTimeReworks/{id}")] + ITask> PutStandardWorkTimeRework(int id, [FromBody, RawJsonContent] string model); + + /// + /// 刪除重工標準工時 + /// + /// + [WebApiClient.Attributes.HttpDelete("api/StandardWorkTimeReworks/{id}")] + ITask> DeleteStandardWorkTimeRework(int id); + + /// + /// 根據ID獲取指定重工標準工時 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimeReworks/{id}")] + ITask> GetStandardWorkTimeRework(int id); + + /// + /// 獲取重工標準工時資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimeReworks")] + ITask> GetStandardWorkTimeReworks(); + + /// + /// 根据類別代碼獲取不良現象原因資料 + /// + /// + [WebApiClient.Attributes.HttpGet("api/StandardWorkTimeReworks/Query/{wipno}/{sid}")] + ITask> GetStandardWorkTimeReworkByQuery(string wipno, int sid); + + #endregion + } +} diff --git a/AMESCoreStudio.Web/Views/PCS/PCS024.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS024.cshtml new file mode 100644 index 00000000..f1de59b5 --- /dev/null +++ b/AMESCoreStudio.Web/Views/PCS/PCS024.cshtml @@ -0,0 +1,221 @@ +@{ + ViewData["Title"] = "组件資料新增"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +
+ +
+ +
+
+ +
+
+
+ + +
+
+
+
+ +
+
+
+
+
+@section Scripts{ + + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/PCS/PCS024C.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS024C.cshtml new file mode 100644 index 00000000..ff87515e --- /dev/null +++ b/AMESCoreStudio.Web/Views/PCS/PCS024C.cshtml @@ -0,0 +1,147 @@ +@model AMESCoreStudio.WebApi.Models.AMES.BarcodeItem + +@{ ViewData["Title"] = "PCS024C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + + + +
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + + +
+ + @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/PCS/PCS025.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS025.cshtml new file mode 100644 index 00000000..1b297e41 --- /dev/null +++ b/AMESCoreStudio.Web/Views/PCS/PCS025.cshtml @@ -0,0 +1,335 @@ +@{ + ViewData["Title"] = "線別資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+ +
+
+
+ +
+
+
+
+
+
+
+ +@section Scripts{ + + @**@ +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/PCS/PCS025C.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS025C.cshtml new file mode 100644 index 00000000..f6a4d792 --- /dev/null +++ b/AMESCoreStudio.Web/Views/PCS/PCS025C.cshtml @@ -0,0 +1,73 @@ +@model AMESCoreStudio.WebApi.Models.BAS.LineInfo + + +@{ ViewData["Title"] = "BAS003C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + + +
+ + + +
+ +
+ + + +
+ + +
+ + + +
+
+ + + +
+ + @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/PCS/PCS026.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS026.cshtml new file mode 100644 index 00000000..1b297e41 --- /dev/null +++ b/AMESCoreStudio.Web/Views/PCS/PCS026.cshtml @@ -0,0 +1,335 @@ +@{ + ViewData["Title"] = "線別資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +
+
+ +
+ +
+ +
+
+
+ +
+
+
+
+
+
+
+ +@section Scripts{ + + @**@ +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/PCS/PCS026C.cshtml b/AMESCoreStudio.Web/Views/PCS/PCS026C.cshtml new file mode 100644 index 00000000..f6a4d792 --- /dev/null +++ b/AMESCoreStudio.Web/Views/PCS/PCS026C.cshtml @@ -0,0 +1,73 @@ +@model AMESCoreStudio.WebApi.Models.BAS.LineInfo + + +@{ ViewData["Title"] = "BAS003C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + + +
+ + + +
+ +
+ + + +
+ + +
+ + + +
+
+ + + +
+ + @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS001.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS001.cshtml new file mode 100644 index 00000000..af752b03 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS001.cshtml @@ -0,0 +1,94 @@ +@{ + ViewData["Title"] = "工作群組資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/WHS/WHS001C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS001C.cshtml new file mode 100644 index 00000000..0fa7bd55 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS001C.cshtml @@ -0,0 +1,53 @@ +@model AMESCoreStudio.WebApi.Models.AMES.WorkGroup + + +@{ ViewData["Title"] = "WHS001C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ +
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS001U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS001U.cshtml new file mode 100644 index 00000000..d510cac3 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS001U.cshtml @@ -0,0 +1,54 @@ +@model AMESCoreStudio.WebApi.Models.AMES.WorkGroup + + +@{ ViewData["Title"] = "WHS001U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + +
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS002.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS002.cshtml new file mode 100644 index 00000000..530f926f --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS002.cshtml @@ -0,0 +1,101 @@ +@{ + ViewData["Title"] = "工作類別資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/WHS/WHS002C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS002C.cshtml new file mode 100644 index 00000000..126f96ca --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS002C.cshtml @@ -0,0 +1,53 @@ +@model AMESCoreStudio.WebApi.Models.AMES.WorkClass + + +@{ ViewData["Title"] = "WHS002C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ +
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS002U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS002U.cshtml new file mode 100644 index 00000000..da857ff4 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS002U.cshtml @@ -0,0 +1,54 @@ +@model AMESCoreStudio.WebApi.Models.AMES.WorkClass + + +@{ ViewData["Title"] = "WHS002U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + +
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS003.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS003.cshtml new file mode 100644 index 00000000..168234ce --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS003.cshtml @@ -0,0 +1,291 @@ +@{ + ViewData["Title"] = "標準工時資料查詢"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; +} + +
+
+
@ViewBag.Title
+
+
+
+
+
+ +
+ +
+ + +
+ + +
+
+
+ +
+ +
+
+
+ +
+
+
+
+ +
+
+
+
+@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/WHS/WHS003C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS003C.cshtml new file mode 100644 index 00000000..5989e240 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS003C.cshtml @@ -0,0 +1,90 @@ +@model AMESCoreStudio.WebApi.Models.AMES.StandardWorkTime + + +@{ ViewData["Title"] = "WHS003C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + + + +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS003U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS003U.cshtml new file mode 100644 index 00000000..489b57f5 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS003U.cshtml @@ -0,0 +1,88 @@ +@model AMESCoreStudio.WebApi.Models.AMES.StandardWorkTime + +@{ + ViewData["Title"] = "WHS003U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; +} + + + +
+
+
+
+ + + + + + + + +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ +
+ +
+
+
+ +@section Scripts { + @{ + await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); + } + + +} diff --git a/AMESCoreStudio.Web/Views/WHS/WHS005.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS005.cshtml new file mode 100644 index 00000000..5b843a6d --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS005.cshtml @@ -0,0 +1,180 @@ +@{ + ViewData["Title"] = "標準工時資料查詢"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; + +} + +
+
+
@ViewBag.Title
+
+
+
+
+
+
+ +
+ +
+ +
+
+ + +
+
+
+
+
+ +
+
+
+
+
+ +
+
+
+
+
+
+ +@section Scripts{ + + + + + + + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/WHS/WHS008.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS008.cshtml new file mode 100644 index 00000000..5a28d008 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS008.cshtml @@ -0,0 +1,202 @@ +@{ + ViewData["Title"] = "援入/外資料維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; + +} +
+
+
@ViewBag.Title
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+
+ + ~ + + +
+
+
+ +
+
+
+
+ +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/WHS/WHS008C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS008C.cshtml new file mode 100644 index 00000000..36a9d7e9 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS008C.cshtml @@ -0,0 +1,156 @@ +@model AMESCoreStudio.WebApi.Models.AMES.SupportUser + + +@{ ViewData["Title"] = "WHS008C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + +
+
+
+
+ + + + + + +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS008U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS008U.cshtml new file mode 100644 index 00000000..2be9c74b --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS008U.cshtml @@ -0,0 +1,216 @@ +@model AMESCoreStudio.WebApi.Models.AMES.SupportUser +@{ ViewData["Title"] = "WHS008U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + +
+
+
+
+ + + + + + + + + + + + + + + +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS011.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS011.cshtml new file mode 100644 index 00000000..0f6a7957 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS011.cshtml @@ -0,0 +1,171 @@ +@{ + ViewData["Title"] = "重工標準工時維護"; + Layout = "~/Views/Shared/_AMESLayout.cshtml"; + +} +
+
+
+
+
@ViewBag.Title
+
+
+
+
+
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + +
+
+
+
+
+
+
+ + +@section Scripts{ + +} \ No newline at end of file diff --git a/AMESCoreStudio.Web/Views/WHS/WHS011C.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS011C.cshtml new file mode 100644 index 00000000..eaa6efce --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS011C.cshtml @@ -0,0 +1,68 @@ +@model AMESCoreStudio.WebApi.Models.AMES.StandardWorkTimeRework + + +@{ ViewData["Title"] = "WHS011C"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.Web/Views/WHS/WHS011U.cshtml b/AMESCoreStudio.Web/Views/WHS/WHS011U.cshtml new file mode 100644 index 00000000..21ebf8b6 --- /dev/null +++ b/AMESCoreStudio.Web/Views/WHS/WHS011U.cshtml @@ -0,0 +1,76 @@ +@model AMESCoreStudio.WebApi.Models.AMES.StandardWorkTimeRework + + +@{ ViewData["Title"] = "WHS011U"; + Layout = "~/Views/Shared/_FormLayout.cshtml"; } + + + + +
+
+
+
+ + + + + + + + +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+ @Html.ValidationMessage("error") +
+ +
+ +
+
+
+ +@section Scripts { + @{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); + await Html.RenderPartialAsync("_FileinputScriptsPartial"); } + + + + +} + diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs new file mode 100644 index 00000000..84747049 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeInfoesController.cs @@ -0,0 +1,178 @@ +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; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// + /// 工廠资料维护 + /// + [Route("api/[controller]")] + [ApiController] + public class BarcodeInfoesController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public BarcodeInfoesController(AMESContext context) + { + _context = context; + } + + /// + /// 获取全部條碼资料 + /// + /// + // GET: api/BarcodeInfoes + [HttpGet] + public async Task>> GetBarcodeInfoes() + { + IQueryable q = _context.BarcodeInfoes; + q = q.OrderBy(p => p.BarcodeID); + + var BarcodeInfoes = await q.ToListAsync(); + return BarcodeInfoes; + //return await _context.BarcodeInfoes.ToListAsync(); + } + + /// + /// 用ID获取该條碼资料 + /// + /// + /// + // GET: api/BarcodeInfoes/5 + [HttpGet("{id}")] + public async Task>> GetBarcodeInfoes(int id) + { + + IQueryable q = _context.BarcodeInfoes; + q = q.Where(p => p.BarcodeID.Equals(id)); + var barcodeInfo = await q.ToListAsync(); + + if (barcodeInfo == null) + { + return NotFound(); + } + + return barcodeInfo; + } + /// + /// 用No获取该條碼资料 + /// + /// + /// + // GET: api/BarcodeInfoes/5 + [HttpGet("No/{id}")] + public async Task>> GetBarcodeInfoesByNo(string id) + { + + IQueryable q = _context.BarcodeInfoes; + q = q.Where(p => p.BarcodeNo.Equals(id)); + var barcodeInfo = await q.ToListAsync(); + + if (barcodeInfo == null) + { + return NotFound(); + } + + return barcodeInfo; + } + + + + /// + /// 更新條碼资料 + /// + /// + /// + /// + // PUT: api/BarcodeInfoes/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> PutBarcodeInfoes(int id, [FromBody] BarcodeInfo barcodeInfo) + { + if (id != barcodeInfo.BarcodeID) + { + return BadRequest(); + } + + _context.Entry(barcodeInfo).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!BarcodeInfoesExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return barcodeInfo; + } + + /// + /// 新增條碼资料 + /// + /// + /// + // POST: api/BarcodeInfoes + // 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> PostBarcodeInfoes(BarcodeInfo barcodeInfo) + { + Helper helper = new Helper(_context); + barcodeInfo.BarcodeID = helper.GetIDKey("BARCODE_ID").Result; + + _context.BarcodeInfoes.Add(barcodeInfo); + await _context.SaveChangesAsync(); + + return CreatedAtAction("GetBarcodeInfoes", new { id = barcodeInfo.BarcodeID }, barcodeInfo); + + } + + /// + /// 删除條碼资料 + /// + /// + /// + // DELETE: api/BarcodeInfoes/5 + [HttpDelete("{id}")] + public async Task> DeleteBarcodeInfoes(int id) + { + //var repairResponsibleUnits = await _context.BarcodeInfoes.FindAsync(id); + var barcodeInfo = await _context.BarcodeInfoes.Where(m => m.BarcodeID == id).FirstOrDefaultAsync(); + if (barcodeInfo == null) + { + return NotFound(); + } + + _context.BarcodeInfoes.Remove(barcodeInfo); + await _context.SaveChangesAsync(); + + return barcodeInfo; + } + + private bool BarcodeInfoesExists(int id) + { + return _context.BarcodeInfoes.Any(e => e.BarcodeID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeItemsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeItemsController.cs new file mode 100644 index 00000000..dd58c25c --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/BarcodeItemsController.cs @@ -0,0 +1,334 @@ +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 +{ + /// + /// 組件资料维护 + /// + [Route("api/[controller]")] + [ApiController] + public class BarcodeItemsController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public BarcodeItemsController(AMESContext context) + { + _context = context; + } + + /// + /// 获取全部條組件料 + /// + /// + // GET: api/BarcodeItems + [HttpGet] + public async Task>> GetBarcodeItems() + { + IQueryable q = _context.BarcodeItems; + q = q.OrderBy(p => p.BarcodeID); + + + + var BarcodeItems = await q.ToListAsync(); + + + + foreach (var data in BarcodeItems) + { + data.B = _context.BarcodeInfoes.Find(data.BarcodeID); + data.I = _context.Items.Find(data.ItemNo); + data.S = _context.RuleStations.Find(data.RuleStationID); + } + + + + + + return BarcodeItems; + //return await _context.BarcodeItems.ToListAsync(); + } + + /// + /// 用ID获取该條碼资料 + /// + /// + /// + // GET: api/BarcodeItems/5 + [HttpGet("{id}")] + public async Task>> GetBarcodeItems(int id) + { + + IQueryable q = _context.BarcodeItems; + q = q.Where(p => p.BarcodeID.Equals(id)); + var barcodeItem = await q.ToListAsync(); + + if (barcodeItem == null) + { + return NotFound(); + } + + return barcodeItem; + } + + /// + /// 用Unit获取该條碼资料 + /// + /// + /// + // GET: api/BarcodeItems/5 + [HttpGet("Unit/{id}")] + public async Task>> GetBarcodeItemByUnit(string id) + { + + IQueryable q = _context.BarcodeItems; + if(id != "0") + q = q.Where(p => p.I.ItemType.Equals(id)); + var barcodeItem = await q.ToListAsync(); + + foreach (var data in barcodeItem) + { + data.B = _context.BarcodeInfoes.Find(data.BarcodeID); + data.I = _context.Items.Find(data.ItemNo); + data.S = _context.RuleStations.Find(data.RuleStationID); + } + + if (barcodeItem == null) + { + return NotFound(); + } + + return barcodeItem; + } + + /// + /// 用Unit获取该條碼资料 + /// + /// + /// + // GET: api/BarcodeItems/5 + [HttpGet("UnitStr/{id}")] + public async Task>> GetBarcodeItemByUnitStr(string id) + { + var str = ""; + IQueryable q = _context.BarcodeItems; + if (id != "0") + { + q = q.Where(p => p.I.ItemType.Equals(id)); + q = q.Where(p => p.B.BarcodeNo.Equals(str)); + } + var barcodeItem = await q.ToListAsync(); + var i = 0; + + foreach (var data in barcodeItem) + { + //data.Serial = i + 1; + data.B = _context.BarcodeInfoes.Find(data.BarcodeID); + data.I = _context.Items.Find(data.ItemNo); + data.S = _context.RuleStations.Find(data.RuleStationID); + } + + if (barcodeItem == null) + { + return NotFound(); + } + + return barcodeItem; + } + + + /// + /// 用Unit获取该條碼资料 + /// + /// + /// + /// + // GET: api/BarcodeItems/5 + [HttpGet("Unit/{id}/Str/{str}")] + public async Task>> GetBarcodeItemByUnitStr(string id,string str) + { + + IQueryable q = _context.BarcodeItems; + if (id != "0") + { + //製程單位 + q = q.Where(p => p.S.Station.UnitNo.Equals(id)); + //內部條碼 + q = q.Where(p => p.B.BarcodeNo.Equals(str)); + } + var barcodeItem = await q.ToListAsync(); + + foreach (var data in barcodeItem) + { + //data.Serial = i + 1; + data.B = _context.BarcodeInfoes.Find(data.BarcodeID); + data.I = _context.Items.Find(data.ItemNo); + data.S = _context.RuleStations.Find(data.RuleStationID); + } + + if (barcodeItem == null) + { + return NotFound(); + } + + return barcodeItem; + } + + /// + /// 用Unit获取该條碼资料 + /// + /// + /// + /// + // GET: api/BarcodeItems/5 + [HttpGet("Str/{str}")] + public async Task>> GetBarcodeItemByStr(string strO) + { + string id, str; + var strA = strO.Split(";"); + id = strA[0]; + str = strA[1]; + //WO0002A10001 + + IQueryable q = _context.BarcodeItems; + if (id != "0") + q = q.Where(p => p.I.ItemType.Equals(id)); + + q = q.Where(p => p.B.BarcodeNo.Equals(str)); + var barcodeItem = await q.ToListAsync(); + + foreach (var data in barcodeItem) + { + data.B = _context.BarcodeInfoes.Find(data.BarcodeID); + data.I = _context.Items.Find(data.ItemNo); + } + + if (barcodeItem == null) + { + return NotFound(); + } + + return barcodeItem; + } + + + /// + /// 更新條碼资料 + /// + /// + /// + /// + // PUT: api/BarcodeItems/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> PutBarcodeItems(int id, [FromBody] BarcodeItem barcodeItem) + { + ResultModel result = new ResultModel(); + if (id != barcodeItem.BarcodeID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(barcodeItem).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!BarcodeItemsExists(id)) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// + /// 新增條碼资料 + /// + /// + /// + // POST: api/BarcodeItems + // 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> PostBarcodeItems(BarcodeItem barcodeItem) + { + ResultModel result = new ResultModel(); + Helper helper = new Helper(_context); + barcodeItem.BarcodeItemID = helper.GetIDKey("BARCODEITEM_ID").Result; + + _context.BarcodeItems.Add(barcodeItem); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + throw; + } + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// + /// 删除條碼资料 + /// + /// + /// + // DELETE: api/BarcodeItems/5 + [HttpDelete("{id}")] + public async Task> DeleteBarcodeItems(int id) + { + ResultModel result = new ResultModel(); + //var repairResponsibleUnits = await _context.BarcodeItems.FindAsync(id); + var barcodeItem = await _context.BarcodeItems.Where(m => m.BarcodeID == id).FirstOrDefaultAsync(); + if (barcodeItem == null) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + + _context.BarcodeItems.Remove(barcodeItem); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + } + + private bool BarcodeItemsExists(int id) + { + return _context.BarcodeItems.Any(e => e.BarcodeID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimeOlinesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimeOlinesController.cs new file mode 100644 index 00000000..3fff1a40 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimeOlinesController.cs @@ -0,0 +1,155 @@ +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; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class ExceptionWorktimeOlinesController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public ExceptionWorktimeOlinesController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/ExceptionWorktimeOlines + [HttpGet] + public async Task>> GetExceptionWorktimeOline() + { + IQueryable q = _context.ExceptionWorktimeOlines; + + q = q.OrderBy(p => p.OlineID); + + var exceptionWorktimeOline = await q.ToListAsync(); + + return exceptionWorktimeOline; + } + + /// + /// + /// + /// + /// + // GET: api/ExceptionWorktimeOlines/5 + [HttpGet("{id}")] + public async Task>> GetExceptionWorktimeOline(string id) + { + IQueryable q = _context.ExceptionWorktimeOlines; + q = q.Where(p => p.OlineID.Equals(id)); + + var exceptionWorktimeOline = await q.ToListAsync(); + + if (exceptionWorktimeOline == null) + { + return NotFound(); + } + + return exceptionWorktimeOline; + } + + /// + /// + /// + /// + /// + /// + // PUT: api/ExceptionWorktimeOlines/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> PutExceptionWorktimeOline(int id, [FromBody] ExceptionWorktimeOline exceptionWorktimeOline) + { + if (id != exceptionWorktimeOline.OlineID) + { + return BadRequest(); + } + + _context.Entry(exceptionWorktimeOline).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!ExceptionWorktimeOlineExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return exceptionWorktimeOline; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/ExceptionWorktimeOlines + // 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> PostExceptionWorktimeOline(ExceptionWorktimeOline exceptionWorktimeOline) + { + Helper helper = new Helper(_context); + exceptionWorktimeOline.OlineID = helper.GetIDKey("ONLINE_ID").Result; + + _context.ExceptionWorktimeOlines.Add(exceptionWorktimeOline); + await _context.SaveChangesAsync(); + + return CreatedAtAction("GetExceptionWorktimeOline", new { id = exceptionWorktimeOline.OlineID }, exceptionWorktimeOline); + + } + + /// + /// + /// + /// + /// + // DELETE: api/ExceptionWorktimeOlines/5 + [HttpDelete("{id}")] + public async Task> DeleteExceptionWorktimeOline(int id) + { + var exceptionWorktimeOline = await _context.ExceptionWorktimeOlines.Where(p => p.OlineID == id).FirstOrDefaultAsync(); + if (exceptionWorktimeOline == null) + { + return NotFound(); + } + + _context.ExceptionWorktimeOlines.Remove(exceptionWorktimeOline); + await _context.SaveChangesAsync(); + + return exceptionWorktimeOline; + } + + private bool ExceptionWorktimeOlineExists(int id) + { + return _context.ExceptionWorktimeOlines.Any(e => e.OlineID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimesController.cs new file mode 100644 index 00000000..481a632a --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/ExceptionWorktimesController.cs @@ -0,0 +1,155 @@ +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; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class ExceptionWorktimesController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public ExceptionWorktimesController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/ExceptionWorktimes + [HttpGet] + public async Task>> GetExceptionWorktime() + { + IQueryable q = _context.ExceptionWorktimes; + + q = q.OrderBy(p => p.ExceptionID); + + var exceptionWorktime = await q.ToListAsync(); + + return exceptionWorktime; + } + + /// + /// + /// + /// + /// + // GET: api/ExceptionWorktimes/5 + [HttpGet("{id}")] + public async Task>> GetExceptionWorktime(string id) + { + IQueryable q = _context.ExceptionWorktimes; + q = q.Where(p => p.ExceptionID.Equals(id)); + + var exceptionWorktime = await q.ToListAsync(); + + if (exceptionWorktime == null) + { + return NotFound(); + } + + return exceptionWorktime; + } + + /// + /// + /// + /// + /// + /// + // PUT: api/ExceptionWorktimes/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> PutExceptionWorktime(int id, [FromBody] ExceptionWorktime exceptionWorktime) + { + if (id != exceptionWorktime.ExceptionID) + { + return BadRequest(); + } + + _context.Entry(exceptionWorktime).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!ExceptionWorktimeExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return exceptionWorktime; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/ExceptionWorktimes + // 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> PostExceptionWorktime(ExceptionWorktime exceptionWorktime) + { + Helper helper = new Helper(_context); + exceptionWorktime.ExceptionID = helper.GetIDKey("EXCEPTION_WORKTIME_ID").Result; + + _context.ExceptionWorktimes.Add(exceptionWorktime); + await _context.SaveChangesAsync(); + + return CreatedAtAction("GetExceptionWorktime", new { id = exceptionWorktime.ExceptionID }, exceptionWorktime); + + } + + /// + /// + /// + /// + /// + // DELETE: api/ExceptionWorktimes/5 + [HttpDelete("{id}")] + public async Task> DeleteExceptionWorktime(int id) + { + var exceptionWorktime = await _context.ExceptionWorktimes.Where(p => p.ExceptionID == id).FirstOrDefaultAsync(); + if (exceptionWorktime == null) + { + return NotFound(); + } + + _context.ExceptionWorktimes.Remove(exceptionWorktime); + await _context.SaveChangesAsync(); + + return exceptionWorktime; + } + + private bool ExceptionWorktimeExists(int id) + { + return _context.ExceptionWorktimes.Any(e => e.ExceptionID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/StandardWorkTimeReworksController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/StandardWorkTimeReworksController.cs new file mode 100644 index 00000000..7654afc6 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/StandardWorkTimeReworksController.cs @@ -0,0 +1,234 @@ +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 +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class StandardWorkTimeReworksController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// 重工標準工時 + /// + /// + public StandardWorkTimeReworksController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/StandardWorkTimeReworks + [HttpGet] + public async Task>> GetStandardWorkTimeRework() + { + IQueryable q = _context.StandardWorkTimeReworks; + + q = q.OrderBy(p => p.ReworkStandardID); + + var standardWorkTimeRework = await q.ToListAsync(); + + return standardWorkTimeRework; + } + + /// + /// + /// + /// + /// + // GET: api/StandardWorkTimeReworks/5 + [HttpGet("{id}")] + public async Task>> GetStandardWorkTimeRework(int id) + { + IQueryable q = _context.StandardWorkTimeReworks; + q = q.Where(p => p.ReworkStandardID.Equals(id)); + + var standardWorkTimeRework = await q.ToListAsync(); + + if (standardWorkTimeRework == null) + { + return NotFound(); + } + + return standardWorkTimeRework; + } + + /// + /// + /// + /// + /// + // GET: api/StandardWorkTimeReworks/5 + [HttpGet("Query/{wipno}/{sid}")] + public async Task>> GetStandardWorkTimeReworkByQuery(string wipno,int sid) + { + IQueryable q = _context.StandardWorkTimeReworks; + if(wipno!="*") + q = q.Where(p => p.WipNo.Contains(wipno)&& p.StationID.Equals(sid)); + else + q = q.Where(p => p.StationID.Equals(sid)); + + var standardWorkTimeRework = await q.ToListAsync(); + + if (standardWorkTimeRework == null) + { + return NotFound(); + } + + return standardWorkTimeRework; + } + + /// + /// 修改重工標準工時 + /// + /// + /// + /// + // PUT: api/StandardWorkTimeReworks/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> PutStandardWorkTimeRework(int id, [FromBody] StandardWorkTimeRework standardWorkTimeRework) + { + ResultModel result = new ResultModel(); + + if (id != standardWorkTimeRework.ReworkStandardID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(standardWorkTimeRework).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!StandardWorkTimeExists(id)) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + + //if (id != standardWorkTimeRework.ReworkStandardID) + //{ + // return BadRequest(); + //} + + //_context.Entry(standardWorkTimeRework).State = EntityState.Modified; + + //try + //{ + // await _context.SaveChangesAsync(); + //} + //catch (DbUpdateConcurrencyException) + //{ + // if (!StandardWorkTimeExists(id)) + // { + // return NotFound(); + // } + // else + // { + // throw; + // } + //} + + //return standardWorkTimeRework; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/StandardWorkTimeReworks + // 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> PostStandardWorkTimeRework(StandardWorkTimeRework standardWorkTimeRework) + { + ResultModel result = new ResultModel(); + Helper helper = new Helper(_context); + standardWorkTimeRework.ReworkStandardID = helper.GetIDKey("RE_WORKTIME_ID").Result; + + _context.StandardWorkTimeReworks.Add(standardWorkTimeRework); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + //return CreatedAtAction("GetStandardWorkTime", new { id = standardWorkTimeRework.ReworkStandardID }, standardWorkTimeRework); + + } + + /// + /// + /// + /// + /// + // DELETE: api/StandardWorkTimeReworks/5 + [HttpDelete("{id}")] + public async Task> DeleteStandardWorkTimeRework(int id) + { + ResultModel result = new ResultModel(); + + var standardWorkTimeRework = await _context.StandardWorkTimeReworks.FindAsync(id); + if (standardWorkTimeRework == null) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + + _context.StandardWorkTimeReworks.Remove(standardWorkTimeRework); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + //var standardWorkTimeRework = await _context.StandardWorkTimeReworks.Where(p => p.ReworkStandardID == id).FirstOrDefaultAsync(); + //if (standardWorkTimeRework == null) + //{ + // return NotFound(); + //} + + //_context.StandardWorkTimeReworks.Remove(standardWorkTimeRework); + //await _context.SaveChangesAsync(); + + //return standardWorkTimeRework; + } + + private bool StandardWorkTimeExists(int id) + { + return _context.StandardWorkTimeReworks.Any(e => e.ReworkStandardID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/StandardWorkTimesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/StandardWorkTimesController.cs new file mode 100644 index 00000000..d1607d3f --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/StandardWorkTimesController.cs @@ -0,0 +1,276 @@ +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 +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class StandardWorkTimesController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public StandardWorkTimesController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/StandardWorkTimes + [HttpGet] + public async Task>> GetStandardWorkTime() + { + IQueryable q = _context.StandardWorkTimes; + + q = q.OrderBy(p => p.StandardID); + + var standardWorkTime = await q.ToListAsync(); + + return standardWorkTime; + } + + /// + /// + /// + /// + /// + // GET: api/StandardWorkTimes/5 + [HttpGet("{id}")] + public async Task>> GetStandardWorkTime(int id) + { + IQueryable q = _context.StandardWorkTimes; + q = q.Where(p => p.StandardID.Equals(id)); + + var standardWorkTime = await q.ToListAsync(); + + if (standardWorkTime == null) + { + return NotFound(); + } + + return standardWorkTime; + } + + /// + /// WHS005 + /// + /// + /// + /// + /// + // GET: api/StandardWorkTimes/5 + [HttpGet("WHS003/{u}/{l}/{i}")] + public async Task>> GetStandardWorkTimeByQuery003(string u ,int l,string i) + { + IQueryable q = _context.StandardWorkTimes; + + if (l == -99) { + if (u != "Null" && i != "Null") + { + q = q.Where(p => p.UnitNo.Equals(u) && p.ItemNo.Contains(i)); + } + else if (u == "Null" && i != "Null") + { + q = q.Where(p => p.ItemNo.Contains(i)); + } + else if (u != "Null" && i == "Null") + { + q = q.Where(p => p.UnitNo.Equals(u)); + } + } + else { + if (i != "Null") + q = q.Where(p => p.LineID.Equals(l) && p.ItemNo.Contains(i)); + else + q = q.Where(p => p.LineID.Equals(l)); + } + + var standardWorkTime = await q.ToListAsync(); + + if (standardWorkTime == null) + { + return NotFound(); + } + + return standardWorkTime; + } + + /// + /// WHS005 + /// + /// + /// + /// + /// + // GET: api/StandardWorkTimes/5 + [HttpGet("WHS005/{u}/{l}/{i}")] + public async Task>> GetStandardWorkTimeByQuery005(string u, string l, string i) + { + IQueryable q = _context.StandardWorkTimes; + + var strA = l.Split(","); + int[] array = new int[strA.Length]; + for (int t = 0; t < strA.Length; t++) { + array[t] = int.Parse(strA[t]); + } + + //LINQ的 IN: + var queryResult = from p in q + where (array).Contains(p.LineID) + select p; + + if(u!="Null") + queryResult = queryResult.Where(p => p.UnitNo.Equals(u)); + if(i!="Null") + queryResult = queryResult.Where(p => p.LineID.Equals(l)); + + var standardWorkTime = await q.ToListAsync(); + + if (standardWorkTime == null) + { + return NotFound(); + } + + return standardWorkTime; + } + + /// + /// + /// + /// + /// + /// + // PUT: api/StandardWorkTimes/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> PutStandardWorkTime(int id, [FromBody] StandardWorkTime standardWorkTime) + { + + ResultModel result = new ResultModel(); + if (id != standardWorkTime.StandardID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(standardWorkTime).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!StandardWorkTimeExists(id)) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/StandardWorkTimes + // 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> PostStandardWorkTime(StandardWorkTime standardWorkTime) + { + ResultModel result = new ResultModel(); + Helper helper = new Helper(_context); + standardWorkTime.StandardID = helper.GetIDKey("STANDARD_WORKTIME_ID").Result; + var sid = standardWorkTime.StandardID; + _context.StandardWorkTimes.Add(standardWorkTime); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + throw; + } + result.Success = true; + result.Msg = "OK"; + return result; + + + + // return CreatedAtAction("GetStandardWorkTime", new { id = sid }, standardWorkTime); + + } + + /// + /// + /// + /// + /// + // DELETE: api/StandardWorkTimes/5 + [HttpDelete("{id}")] + public async Task> DeleteStandardWorkTime(int id) + { + ResultModel result = new ResultModel(); + + var standardWorkTime = await _context.StandardWorkTimes.FindAsync(id); + if (standardWorkTime == null) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + + _context.StandardWorkTimes.Remove(standardWorkTime); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + //var standardWorkTime = await _context.StandardWorkTimes.Where(p => p.StandardID == id).FirstOrDefaultAsync(); + //if (standardWorkTime == null) + //{ + // return NotFound(); + //} + // + //_context.StandardWorkTimes.Remove(standardWorkTime); + //await _context.SaveChangesAsync(); + // + //return standardWorkTime; + } + + private bool StandardWorkTimeExists(int id) + { + return _context.StandardWorkTimes.Any(e => e.StandardID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/SupportUsersController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/SupportUsersController.cs new file mode 100644 index 00000000..6d3d46a8 --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/SupportUsersController.cs @@ -0,0 +1,237 @@ +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 +{ + /// + /// 工時援入/外 + /// + [Route("api/[controller]")] + [ApiController] + public class SupportUsersController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public SupportUsersController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/SupportUsers + [HttpGet] + public async Task>> GetSupportUser() + { + IQueryable q = _context.SupportUsers; + + q = q.OrderBy(p => p.SupportID); + + var supportUser = await q.ToListAsync(); + + return supportUser; + } + + /// + /// + /// + /// + /// + // GET: api/SupportUsers/5 + [HttpGet("{id}")] + public async Task>> GetSupportUser(int id) + { + IQueryable q = _context.SupportUsers; + q = q.Where(p => p.SupportID.Equals(id)); + + var supportUser = await q.ToListAsync(); + + if (supportUser == null) + { + return NotFound(); + } + + return supportUser; + } + + /// + /// 援入援外綜合查詢 + /// + /// 廠別 + /// 援入/外 + /// 製程單位 + /// 開始時間 + /// 結束時間 + /// + // GET: api/StandardWorkTimes/5 + [HttpGet("Query/{f}/{type}/{unit}/{sd}/{ed}")] + public async Task>> GetSupportUserByQuery(string f, string type, string unit, string sd, string ed) + { + IQueryable q = _context.SupportUsers; + + //LINQ的 IN: + //var queryResult = from p in q + // where (array).Contains(p.LineID) + // select p; + + var sd2 = System.DateTime.Parse(sd); + var ed2 = System.DateTime.Parse(ed); + if (type == "i") + { + q = q.Where(p => p.Werks.Equals(f) && p.UnitNoI.Equals(unit) && (DateTime.Compare(sd2, p.SupportDate) <=0 && DateTime.Compare(ed2, p.SupportDate)>=0) ); + } + else + q = q.Where(p => p.Werks.Equals(f) && p.UnitNoO.Equals(unit) && (DateTime.Compare(sd2, p.SupportDate) <= 0 && DateTime.Compare(ed2, p.SupportDate) >= 0)); + + var supportUser = await q.ToListAsync(); + + if (supportUser == null) + { + return NotFound(); + } + + return supportUser; + } + + + /// + /// 修改工時援入/外 + /// + /// + /// + /// + // PUT: api/SupportUsers/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> PutSupportUser(int id, [FromBody] SupportUser supportUser) + { + + ResultModel result = new ResultModel(); + + if (id != supportUser.SupportID) + { + result.Success = false; + result.Msg = "序號錯誤"; + return result; + } + + _context.Entry(supportUser).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!SupportUserExists(id)) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + else + { + throw; + } + } + + result.Success = true; + result.Msg = "OK"; + return result; + + } + + /// + /// 新增援入外资料 + /// + /// + /// + // POST: api/SupportUsers + // 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> PostSupportUser(SupportUser supportUser) + { + ResultModel result = new ResultModel(); + Helper helper = new Helper(_context); + supportUser.SupportID = helper.GetIDKey("SUPPORT_ID").Result; + + _context.SupportUsers.Add(supportUser); + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateException) + { + throw; + } + + + + result.Success = true; + result.Msg = "OK"; + return result; + // return CreatedAtAction("GetSupportUser", new { id = supportUser.SupportID }, supportUser); + + } + + /// + /// 刪除援入外資料 + /// + /// + /// + // DELETE: api/SupportUsers/5 + [HttpDelete("{id}")] + public async Task> DeleteSupportUser(int id) + { + + + ResultModel result = new ResultModel(); + + var supportUser = await _context.SupportUsers.FindAsync(id); + if (supportUser == null) + { + result.Success = false; + result.Msg = "序號不存在"; + return result; + } + + _context.SupportUsers.Remove(supportUser); + await _context.SaveChangesAsync(); + + result.Success = true; + result.Msg = "OK"; + return result; + //var supportUser = await _context.SupportUsers.Where(p => p.SupportID == id).FirstOrDefaultAsync(); + //if (supportUser == null) + //{ + // return NotFound(); + //} + + //_context.SupportUsers.Remove(supportUser); + //await _context.SaveChangesAsync(); + + //return supportUser; + } + + private bool SupportUserExists(int id) + { + return _context.SupportUsers.Any(e => e.SupportID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs new file mode 100644 index 00000000..5ad4400b --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkClassesController.cs @@ -0,0 +1,167 @@ + +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; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class WorkClassesController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public WorkClassesController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/WorkClasses + [HttpGet] + public async Task>> GetWorkClasses() + { + IQueryable q = _context.WorkClasses; + + q = q.OrderBy(p => p.ClassID); + + var workClass = await q.ToListAsync(); + + foreach (var data in workClass) + { + data.Group = _context.WorkGroups.Find(data.GroupID); + } + + return workClass; + } + + /// + /// + /// + /// + /// + // GET: api/WorkClasses/5 + [HttpGet("{id}")] + public async Task>> GetWorkClasses(int id) + { + IQueryable q = _context.WorkClasses; + q = q.Where(p => p.ClassID.Equals(id)); + + var workClass = await q.ToListAsync(); + + foreach (var data in workClass) + { + data.Group = _context.WorkGroups.Find(data.GroupID); + } + + + if (workClass == null) + { + return NotFound(); + } + + return workClass; + } + + /// + /// + /// + /// + /// + /// + // PUT: api/WorkClasses/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> PutWorkClass(int id, [FromBody] WorkClass workClass) + { + if (id != workClass.ClassID) + { + return BadRequest(); + } + + _context.Entry(workClass).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!WorkClassExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return workClass; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/WorkClasses + // 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> PostWorkClass(WorkClass 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); + + } + + /// + /// + /// + /// + /// + // DELETE: api/WorkClasses/5 + [HttpDelete("{id}")] + public async Task> DeleteWorkClass(int id) + { + var workClass = await _context.WorkClasses.Where(p => p.ClassID == id).FirstOrDefaultAsync(); + if (workClass == null) + { + return NotFound(); + } + + _context.WorkClasses.Remove(workClass); + await _context.SaveChangesAsync(); + + return workClass; + } + + private bool WorkClassExists(int id) + { + return _context.WorkClasses.Any(e => e.ClassID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs new file mode 100644 index 00000000..6c48433f --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkGroupsController.cs @@ -0,0 +1,155 @@ +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; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class WorkGroupsController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public WorkGroupsController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/WorkGroups + [HttpGet] + public async Task>> GetWorkGroup() + { + IQueryable q = _context.WorkGroups; + + q = q.OrderBy(p => p.GroupID); + + var workGroup = await q.ToListAsync(); + + return workGroup; + } + + /// + /// + /// + /// + /// + // GET: api/WorkGroups/5 + [HttpGet("{id}")] + public async Task>> GetWorkGroup(int id) + { + IQueryable q = _context.WorkGroups; + q = q.Where(p => p.GroupID.Equals(id)); + + var workGroup = await q.ToListAsync(); + + if (workGroup == null) + { + return NotFound(); + } + + return workGroup; + } + + /// + /// + /// + /// + /// + /// + // PUT: api/WorkGroups/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> PutWorkGroup(int id, [FromBody] WorkGroup workGroup) + { + if (id != workGroup.GroupID) + { + return BadRequest(); + } + + _context.Entry(workGroup).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!WorkGroupExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return workGroup; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/WorkGroups + // 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> PostWorkGroup(WorkGroup 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); + + } + + /// + /// + /// + /// + /// + // DELETE: api/WorkGroups/5 + [HttpDelete("{id}")] + public async Task> DeleteWorkGroup(int id) + { + var workGroup = await _context.WorkGroups.Where(p => p.GroupID == id).FirstOrDefaultAsync(); + if (workGroup == null) + { + return NotFound(); + } + + _context.WorkGroups.Remove(workGroup); + await _context.SaveChangesAsync(); + + return workGroup; + } + + private bool WorkGroupExists(int id) + { + return _context.WorkGroups.Any(e => e.GroupID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Controllers/AMES/WorkManPowersController.cs b/AMESCoreStudio.WebApi/Controllers/AMES/WorkManPowersController.cs new file mode 100644 index 00000000..bf01443a --- /dev/null +++ b/AMESCoreStudio.WebApi/Controllers/AMES/WorkManPowersController.cs @@ -0,0 +1,155 @@ +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; + +namespace AMESCoreStudio.WebApi.Controllers.AMES +{ + /// + /// 工作群組維護 + /// + [Route("api/[controller]")] + [ApiController] + public class WorkManPowersController : ControllerBase + { + private readonly AMESContext _context; + + /// + /// + /// + /// + public WorkManPowersController(AMESContext context) + { + _context = context; + } + + /// + /// + /// + /// + // GET: api/WorkManPowers + [HttpGet] + public async Task>> GetWorkManPower() + { + IQueryable q = _context.WorkManPowers; + + q = q.OrderBy(p => p.PowerID); + + var workManPower = await q.ToListAsync(); + + return workManPower; + } + + /// + /// + /// + /// + /// + // GET: api/WorkManPowers/5 + [HttpGet("{id}")] + public async Task>> GetWorkManPower(string id) + { + IQueryable q = _context.WorkManPowers; + q = q.Where(p => p.PowerID.Equals(id)); + + var workManPower = await q.ToListAsync(); + + if (workManPower == null) + { + return NotFound(); + } + + return workManPower; + } + + /// + /// + /// + /// + /// + /// + // PUT: api/WorkManPowers/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> PutWorkManPower(int id, [FromBody] WorkManPower workManPower) + { + if (id != workManPower.PowerID) + { + return BadRequest(); + } + + _context.Entry(workManPower).State = EntityState.Modified; + + try + { + await _context.SaveChangesAsync(); + } + catch (DbUpdateConcurrencyException) + { + if (!WorkManPowerExists(id)) + { + return NotFound(); + } + else + { + throw; + } + } + + return workManPower; + } + + /// + /// 新增资料 + /// + /// + /// + // POST: api/WorkManPowers + // 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> PostWorkManPower(WorkManPower workManPower) + { + Helper helper = new Helper(_context); + workManPower.PowerID = helper.GetIDKey("STANDARD_WORKTIME_ID").Result; + + _context.WorkManPowers.Add(workManPower); + await _context.SaveChangesAsync(); + + return CreatedAtAction("GetWorkManPower", new { id = workManPower.PowerID }, workManPower); + + } + + /// + /// + /// + /// + /// + // DELETE: api/WorkManPowers/5 + [HttpDelete("{id}")] + public async Task> DeleteWorkManPower(int id) + { + var workManPower = await _context.WorkManPowers.Where(p => p.PowerID == id).FirstOrDefaultAsync(); + if (workManPower == null) + { + return NotFound(); + } + + _context.WorkManPowers.Remove(workManPower); + await _context.SaveChangesAsync(); + + return workManPower; + } + + private bool WorkManPowerExists(int id) + { + return _context.WorkManPowers.Any(e => e.PowerID == id); + } + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/BarcodeInfo.cs b/AMESCoreStudio.WebApi/Models/AMES/BarcodeInfo.cs new file mode 100644 index 00000000..ad58775e --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/BarcodeInfo.cs @@ -0,0 +1,125 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 條碼變更資料表 + /// + [Table("BARCODE_INFO", Schema = "JHAMES")] + [DataContract] + public class BarcodeInfo + { + /// + /// 條碼ID + /// + [Column("BARCODE_ID")] + [DataMember] + [Display(Name = "條碼ID")] + [Key] + public int BarcodeID { get; set; } + + /// + /// 條碼序號 + /// + [Column("BARCODE_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "條碼序號")] + public string BarcodeNo { get; set; } + + /// + /// + /// + [Column("STATUS_NO")] + [DataMember] + public string StatusNo { get; set; } + + /// + /// + /// + [Column("EXTRA_BARCODE_NO")] + [DataMember] + public string ExtraBarcodeNo { get; set; } + + /// + /// + /// + [Column("LOCATION_ID")] + [DataMember] + public string LocationID { get; set; } + + /// + /// + /// + [Column("RULE_STATION_ID")] + [DataMember] + public string RuleStationID { get; set; } + + /// + /// + /// + [Column("RULE_STATUS")] + [DataMember] + public string RuleStatus { get; set; } + + /// + /// + /// + [Column("WIP_ID")] + [DataMember] + public string WipID { get; set; } + + /// + /// + /// + [Column("BOX_NO")] + [DataMember] + public string BoxNo { get; set; } + + + /// + /// + /// + [Column("SYSTYPE")] + [DataMember] + public string SysType { get; set; } + + /// + /// + /// + [Column("STATUS_ID")] + [DataMember] + public string StatusID { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立者")] + public decimal CreateUserID { get; set; } = -1; + + /// + /// 建立時間 + /// + [Column("CREATE_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立時間")] + public DateTime CreateDate { get; set; } = DateTime.Now; + + /// + /// 修改時間 + /// + [Column("UPDATE_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "修改時間")] + public DateTime UpdateDate { get; set; } = DateTime.Now; + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/BarcodeItem.cs b/AMESCoreStudio.WebApi/Models/AMES/BarcodeItem.cs new file mode 100644 index 00000000..f5dc2381 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/BarcodeItem.cs @@ -0,0 +1,119 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 條碼组件資料檔 + /// + [Table("BARCODE_ITEM", Schema = "JHAMES")] + public class BarcodeItem + { + /// + /// 條碼組件ID + /// + [Column("BARCODE_ITEM_ID")] + [DataMember] + [Display(Name = "條碼組件ID")] + [Key] + public int BarcodeItemID { get; set; } + /// + /// 内部條碼ID + /// + [Column("BARCODE_ID")] + [DataMember] + [Display(Name = "内部條碼ID")] + //[Key] + public int BarcodeID { get; set; } + + /// + /// 工單ID + /// + [Column("WIP_ID")] + [DataMember] + public int WipID { get; set; } + + /// + /// 流程站别ID + /// + [Column("RULE_STATION_ID")] + [DataMember] + [Display(Name = "站别")] + public int RuleStationID { get; set; } + + /// + /// 组件代碼 + /// + [Column("ITEM_NO")] + [DataMember] + [Display(Name = "组件代碼")] + public string ItemNo { get; set; } + + /// + /// 组件條碼 + /// + [Column("PART_NO")] + [DataMember] + [Display(Name = "组件條碼")] + public string PartNo { get; set; } + + /// + /// 系统狀態 + /// + [Column("SYSTYPE")] + [DataMember] + public string SysType { get; set; } + + /// + /// 组件料號 + /// + [Column("KP_ITEM_NO")] + [DataMember] + [Display(Name = "组件料號")] + public string KpItemNo { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立者")] + public int CreateUserID { get; set; } + + /// + /// 建立時間 + /// + [Column("CREATE_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立時間")] + public DateTime CreateDate { get; set; } + + /// + /// 修改時間 + /// + [Column("UPDATE_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "修改時間")] + public DateTime UpdateDate { get; set; } + + /// + /// 條碼资料 + /// + public virtual BarcodeInfo B { get; set; } + + /// + /// 組件资料 + /// + public virtual Item I { get; set; } + + /// + /// 站別资料 + /// + public virtual AMESCoreStudio.WebApi.Models.BAS.RuleStation S { get; set; } + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/ExceptionWorktime.cs b/AMESCoreStudio.WebApi/Models/AMES/ExceptionWorktime.cs new file mode 100644 index 00000000..07cc3f66 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/ExceptionWorktime.cs @@ -0,0 +1,275 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 異常工時資料 + /// + [Table("EXCEPTION_WORKTIME", Schema = "JHAMES")] + [DataContract] + public class ExceptionWorktime + { + /// + /// 異常工時ID + /// + [Key] + [Column("EXCEPTION_ID")] + [Required(ErrorMessage = "{0},不能空白")] + [DataMember] + public decimal ExceptionID { get; set; } + + /// + /// 廠別 + /// + [Column("FACTORY_NO")] + [DataMember] + [Display(Name = "廠別")] + public string FactoryNo { get; set; } + + /// + /// 制程代碼 + /// + [Column("UNIT_NO")] + [DataMember] + [Display(Name = "制程代碼")] + public string UnitNo { get; set; } + + /// + /// 線別 + /// + [Column("LINE_ID")] + [DataMember] + [Display(Name = "線別")] + public int LineID { get; set; } + + /// + /// 異常日期 + /// + [Column("EXCEPTION_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "異常日期")] + public DateTime ExceptionDate { get; set; } + + /// + /// 異常班別 + /// + [Column("CLASS_NO")] + [DataMember] + [Display(Name = "異常班別")] + public string ClassNo { get; set; } + + /// + /// 異常代碼 + /// + [Column("EXCEPTION_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "異常代碼")] + public string ExceptionNo { get; set; } + + /// + /// 歸屬工單 + /// + [Column("WIP_NO")] + [Display(Name = "歸屬工單")] + public string WipNo { get; set; } + + /// + /// 機種 + /// + [Column("MODEL_NO")] + [Display(Name = "機種")] + public string ModelNo { get; set; } + + + /// + /// 異常工時(Min) + /// + [Column("TIME")] + [DataMember] + [Display(Name = "常工時(Min)")] + public int Time { get; set; } + + /// + /// 歸屬部門 + /// + [Column("DEPT_ID")] + [DataMember] + [Display(Name = "歸屬部門")] + public int DeptID { get; set; } + + /// + /// 異常備註 + /// + [Column("MEMO")] + public string Memo { get; set; } + + /// + /// 站別ID + /// + [Column("STATION_ID")] + [DataMember] + [Display(Name = "站別")] + public int StationID { get; set; } + + /// + /// T2站點姓名 + /// + [Column("T2_USER_NAME")] + [Display(Name = "T2站點姓名")] + public string T2UserName { get; set; } + + /// + /// 起始時間 + /// + [Column("START_TIME")] + [Display(Name = "起始時間")] + public DateTime StartTime { get; set; } + + /// + /// 結束時間 + /// + [Column("END_TIME")] + [Display(Name = "結束時間")] + public DateTime EndTime { get; set; } + + /// + /// 判定單位 + /// + [Column("DECIDE_DEPT")] + [Display(Name = "判定單位")] + public string DecideDept { get; set; } + + /// + /// 判定負責人 + /// + [Column("DECIDE_USER")] + [Display(Name = "判定負責人")] + public string DecideUser{ get; set; } + + /// + /// 責任單位(回覆) + /// + [Column("DUTY_DEPT")] + [Display(Name = "責任單位(回覆)")] + public string DutyDept { get; set; } + + /// + /// 回覆: 回覆對策 + /// + [Column("MEASURE")] + [Display(Name = "回覆: 回覆對策")] + public string Measure { get; set; } + + /// + /// 回覆: 異常人數 + /// + [Column("PERSON_NUM")] + [DataMember] + [Display(Name = "回覆: 異常人數")] + public int PersonNum { get; set; } + + /// + /// 回覆: 判定描述 + /// + [Column("REASON_NAME_CH")] + [Display(Name = "回覆: 判定描述")] + public string PersonNameCh { get; set; } + + /// + ///回覆: 判定類別 + /// + [Column("REASON_NO")] + [Display(Name = "回覆: 判定類別")] + public string PersonNo { get; set; } + + /// + /// 回覆: 回覆日期 + /// + [Column("MEASURE_DATE")] + [Display(Name = "回覆: 回覆日期")] + public DateTime MeasureDate { get; set; } + + /// + /// 回覆: 回覆備註 + /// + [Column("MEASURE_MEMO")] + [Display(Name = "回覆: 回覆備註")] + public DateTime MeasureMemo { get; set; } + + /// + /// 判定單位ID + /// + [Column("DECIDE_DEPT_ID")] + [Display(Name = "判定單位ID")] + public int DecidDeptID { get; set; } + + /// + /// 判定負責人ID + /// + [Column("DECIDE_USER_ID")] + public int DecidUserID { get; set; } + + /// + /// 責任單位ID + /// + [Column("DUTY_DEPT_ID")] + [Display(Name = "責任單位ID")] + public int DutyDeptID { get; set; } + + /// + /// 責任人ID + /// + [Column("DUTY_USER_ID")] + [Display(Name = "責任人ID")] + public int DutyUserID { get; set; } + + /// + /// 責任人工號 + /// + [Column("DUTY_USER")] + [Display(Name = "責任人工號")] + public string DutyUser { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立者")] + public decimal CreateUserID { get; set; } + + /// + /// 建立日期 + /// + [Column("CREATE_DATE")] + [DataMember] + [Display(Name = "建立日期")] + public DateTime CreateDate { get; set; } + + /// + /// 修改者 + /// + [Column("UPDATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "修改者")] + public decimal UpdateUserID { get; set; } + + /// + /// 修改日期 + /// + [Column("UPDATE_DATE")] + [DataMember] + [Display(Name = "修改日期")] + public DateTime UpdateDate { get; set; } + + + + } +} \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMES/ExceptionWorktimeOline.cs b/AMESCoreStudio.WebApi/Models/AMES/ExceptionWorktimeOline.cs new file mode 100644 index 00000000..8b4ce245 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/ExceptionWorktimeOline.cs @@ -0,0 +1,229 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 無效工時在線收集資料檔 + /// + [Table("EXCEPTION_WORKTIME_ONLINE", Schema = "JHAMES")] + [DataContract] + public class ExceptionWorktimeOline + { + /// + /// 異常工時ID + /// + [Key] + [Column("ONLINE_ID")] + [Required(ErrorMessage = "{0},不能空白")] + [DataMember] + public decimal OlineID { get; set; } + + /// + /// 廠別 + /// + [Column("FACTORY_NO")] + [DataMember] + [Display(Name = "廠別")] + public string FactoryNo { get; set; } + + /// + /// 制程代碼 + /// + [Column("UNIT_NO")] + [DataMember] + [Display(Name = "制程代碼")] + public string UnitNo { get; set; } + + /// + /// 線別 + /// + [Column("LINE_ID")] + [DataMember] + [Display(Name = "線別")] + public int LineID { get; set; } + + /// + /// 站別ID + /// + [Column("STATION_ID")] + [DataMember] + [Display(Name = "站別")] + public int StationID { get; set; } + + /// + /// 收集人員工號 + /// + [Column("T2_USER_NAME")] + [Display(Name = "收集人員工號")] + public string T2UserName { get; set; } + + + /// + /// 異常日期 + /// + [Column("EXCEPTION_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "異常發生日期")] + public DateTime ExceptionDate { get; set; } + + /// + /// 異常班別 + /// + [Column("CLASS_NO")] + [DataMember] + [Display(Name = "班別")] + public string ClassNo { get; set; } + + /// + /// 異常代碼 + /// + [Column("EXCEPTION_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "異常代碼")] + public string ExceptionNo { get; set; } + + /// + /// 工單號碼 + /// + [Column("WIP_NO")] + [Display(Name = "工單號碼")] + public string WipNo { get; set; } + + /// + /// 機種 + /// + [Column("MODEL_NO")] + [Display(Name = "機種")] + public string ModelNo { get; set; } + + /// + /// 起始時間 + /// + [Column("START_TIME")] + [Display(Name = "起始時間")] + public DateTime StartTime { get; set; } + + /// + /// 結束時間 + /// + [Column("END_TIME")] + [Display(Name = "結束時間")] + public DateTime EndTime { get; set; } + + /// + /// 異常人數 + /// + [Column("PERSON_NUM")] + [DataMember] + [Display(Name = "異常人數")] + public int PersonNum { get; set; } + + /// + /// 異常工時(Min) + /// + [Column("TIME")] + [DataMember] + [Display(Name = "常工時(Min)")] + public int Time { get; set; } + + /// + /// 歸屬部門 + /// + [Column("DEPT_ID")] + [DataMember] + [Display(Name = "歸屬部門")] + public int DeptID { get; set; } + + /// + /// 判定單位 + /// + [Column("DECIDE_DEPT")] + [Display(Name = "判定單位")] + public string DecideDept { get; set; } + + /// + /// 判定負責人 + /// + [Column("DECIDE_USER")] + [Display(Name = "判定負責人")] + public string DecideUser{ get; set; } + + /// + /// 判定單位ID + /// + [Column("DECIDE_DEPT_ID")] + [Display(Name = "判定單位ID")] + public int DecidDeptID { get; set; } + + /// + /// 判定負責人ID + /// + [Column("DECIDE_USER_ID")] + public int DecidUserID { get; set; } + + /// + /// 判定類別 + /// + [Column("REASON_NO")] + [Display(Name = "判定類別")] + public string PersonNo { get; set; } + + /// + /// 判定描述 + /// + [Column("REASON_NAME_CH")] + [Display(Name = "判定描述")] + public string PersonNameCh { get; set; } + + /// + /// 無效工時收集標誌 + /// + [Column("TYPE_FLAG")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "無效工時收集標誌")] + public int TypeFlag { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立者")] + public decimal CreateUserID { get; set; } + + /// + /// 建立日期 + /// + [Column("CREATE_DATE")] + [DataMember] + [Display(Name = "建立日期")] + public DateTime CreateDate { get; set; } + + /// + /// 修改者 + /// + [Column("UPDATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "修改者")] + public decimal UpdateUserID { get; set; } + + /// + /// 修改日期 + /// + [Column("UPDATE_DATE")] + [DataMember] + [Display(Name = "修改日期")] + public DateTime UpdateDate { get; set; } + + + + } +} \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMES/Item.cs b/AMESCoreStudio.WebApi/Models/AMES/Item.cs new file mode 100644 index 00000000..3ee2cfa9 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/Item.cs @@ -0,0 +1,45 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 組件資料檔 + /// + [Table("ITEMS", Schema = "JHAMES")] + [DataContract] + public class Item + { + /// + /// 组件代碼 + /// + [Column("ITEM_NO")] + [DataMember] + [Key] + public string ItemNo { get; set; } + + /// + /// 组件名稱 + /// + [Column("ITEM_NAME")] + [DataMember] + public string ItemName { get; set; } + + /// + /// 組件類別 + /// + [Column("ITEM_TYPE")] + [DataMember] + public string ItemType { get; set; } + + /// + /// 組件區間管控 + /// + [Column("SN_INTERVAL")] + [DataMember] + public string SnInerval { get; set; } + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/StandardWorkTime.cs b/AMESCoreStudio.WebApi/Models/AMES/StandardWorkTime.cs new file mode 100644 index 00000000..5a219aca --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/StandardWorkTime.cs @@ -0,0 +1,146 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 標準工時资料表 + /// + [Table("STANDARD_WORKTIME", Schema = "JHAMES")] + public class StandardWorkTime + { + /// + /// 標準工時ID + /// + [Key] + [Column("STANDARD_ID")] + [Required(ErrorMessage = "{0},不能空白")] + [DataMember] + public int StandardID { get; set; } + + /// + /// 生產單位 + /// + [Column("UNIT_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "生產單位")] + public string UnitNo { get; set; } + + /// + /// 線別ID + /// + [Column("LINE_ID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "線別")] + public int LineID { get; set; } + + /// + /// 料號 + /// + [Column("ITEM_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "料號")] + public string ItemNo { get; set; } + + /// + /// 作業人數 + /// + [Column("OP_CNT")] + [DataMember] + [Display(Name = "作業人數")] + [Required(ErrorMessage = "{0},不能空白")] + public int OPCNT { get; set; } + + /// + /// 首件產出時間 + /// + [Column("FIRST_TIME")] + [DataMember] + [Display(Name = "首件產出時間(分)")] + [Required(ErrorMessage = "{0},不能空白")] + public decimal FirstTime { get; set; } + + /// + /// CT + /// + [Column("TOTAL_CT")] + [DataMember] + [Display(Name = "C/T(分)")] + [Required(ErrorMessage = "{0},不能空白")] + public decimal TotalCT { get; set; } + + /// + /// 節拍時間 + /// + [Column("CT")] + [DataMember] + [Display(Name = "節拍時間(分)")] + [Required(ErrorMessage = "{0},不能空白")] + public decimal CT { get; set; } + + /// + /// 操機數 + /// + [Column("MACHINE_CNT")] + [DataMember] + [Display(Name = "操機數(台/人)")] + [Required(ErrorMessage = "{0},不能空白")] + public decimal MachineCT { get; set; } + + /// + /// 正背面 + /// + [Column("SIDE")] + [DataMember] + [Display(Name = "正背面")] + [Required(ErrorMessage = "{0},不能空白")] + public string Side { get; set; } + + /// + /// 節拍時站別ID間 + /// + [Column("STATION_ID")] + [DataMember] + [Display(Name = "站別")] + [Required(ErrorMessage = "{0},不能空白")] + public int StationID { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Display(Name = "建立者")] + public int CreateUserID { get; set; } + + /// + /// 建立日期 + /// + [Column("CREATE_DATE")] + [DataMember] + [Display(Name = "建立日期")] + public DateTime CreateDate { get; set; } + + /// + /// 修改者 + /// + [Column("UPDATE_USERID")] + [Display(Name = "修改者")] + public int UpdateUserID { get; set; } + + /// + /// 修改日期 + /// + [Column("UPDATE_DATE")] + [Display(Name = "修改日期")] + public DateTime UpdateDate { get; set; } + + + + } +} \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMES/StandardWorkTimeRework.cs b/AMESCoreStudio.WebApi/Models/AMES/StandardWorkTimeRework.cs new file mode 100644 index 00000000..d6ead62a --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/StandardWorkTimeRework.cs @@ -0,0 +1,95 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 重工標準工時資料 + /// + [Table("STANDARD_WORKTIME_REWORK", Schema = "JHAMES")] + [DataContract] + public class StandardWorkTimeRework + { + /// + /// 標準工時ID + /// + [Key] + [Column("REWORK_STANDARD_ID")] + [Required(ErrorMessage = "{0},不能空白")] + [DataMember] + public int ReworkStandardID { get; set; } + + /// + /// 工單號碼 + /// + [Column("WIP_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "工單號碼")] + public string WipNo { get; set; } + + /// + /// 料號 + /// + [Column("ITEM_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "料號")] + public string ItemNo { get; set; } + + /// + /// 站別ID + /// + [Column("STATION_ID")] + [DataMember] + [Display(Name = "站別")] + public int StationID { get; set; } + + /// + /// CT + /// + [Column("TOTAL_CT")] + [DataMember] + [Display(Name = "CT")] + public int TotalCT { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立者")] + public decimal CreateUserID { get; set; } + + /// + /// 建立日期 + /// + [Column("CREATE_DATE")] + [DataMember] + [Display(Name = "建立日期")] + public DateTime CreateDate { get; set; } + + /// + /// 修改者 + /// + [Column("UPDATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "修改者")] + public decimal UpdateUserID { get; set; } + + /// + /// 修改日期 + /// + [Column("UPDATE_DATE")] + [DataMember] + [Display(Name = "修改日期")] + public DateTime UpdateDate { get; set; } + + + + } +} \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMES/SupportUser.cs b/AMESCoreStudio.WebApi/Models/AMES/SupportUser.cs new file mode 100644 index 00000000..0166e0f7 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/SupportUser.cs @@ -0,0 +1,176 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 援入援外資料檔 + /// + [Table("SUPPORT_USER", Schema = "JHAMES")] + [DataContract] + public class SupportUser + { + /// + /// 援入援出ID + /// + [Key] + [Column("SUPPORT_ID")] + [Required(ErrorMessage = "{0},不能空白")] + [DataMember] + public int SupportID { get; set; } + + /// + /// 援入援出日期 + /// + [Column("SUPPORT_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "援入援出日期")] + public DateTime SupportDate { get; set; } + + /// + /// 員工工號 + /// + [Column("USER_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "員工工號")] + public string UserNo { get; set; } + + /// + /// 員工名稱 + /// + [Column("USER_NAME")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "員工名稱")] + public string UserNane { get; set; } + + /// + /// 援入部門 + /// + [Column("UNIT_NO_I")] + [DataMember] + [Display(Name = "援入部門")] + public string UnitNoI { get; set; } + + /// + /// 援入其他部門 + /// + [Column("OTHER_DEPT_I")] + [DataMember] + [Display(Name = "援入其他部門")] + + public string OtherDeptI { get; set; } + /// + /// 援出部門 + /// + [Column("UNIT_NO_O")] + [DataMember] + [Display(Name = "援出部門")] + public string UnitNoO { get; set; } + + /// + /// 援出其他部門 + /// + [Column("OTHER_DEPT_O")] + [DataMember] + [Display(Name = "援出其他部門")] + public string OtherDeptO { get; set; } + + /// + /// 支援時數(分鐘) + /// + [Column("HOURS")] + [DataMember] + [Display(Name = "支援時數(分鐘)")] + public int Hours { get; set; } + + /// + /// 援入線別 + /// + [Column("LINE_ID_I")] + [DataMember] + [Display(Name = "援入線別")] + public int LineIDI { get; set; } + + /// + /// 援入站別 + /// + [Column("STATION_ID_I")] + [DataMember] + [Display(Name = "援入站別")] + public int StationIDI { get; set; } + + /// + /// 援出線別 + /// + [Column("LINE_ID_O")] + [DataMember] + [Display(Name = "援出線別")] + public int LineIDO { get; set; } + + /// + /// 援出站別 + /// + [Column("STATION_ID_O")] + [DataMember] + [Display(Name = "援出站別")] + public int StationIDO { get; set; } + + /// + /// 備註 + /// + [Column("MEMO")] + [DataMember] + [Display(Name = "備註")] + public string Memo { get; set; } + + /// + /// 廠別 + /// + [Column("WERKS")] + [DataMember] + [Display(Name = "廠別")] + public string Werks { get; set; } + + /// + /// 班別 + /// + [Column("CLASS_NO")] + [DataMember] + [Display(Name = "班別")] + public string ClassNo { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + public int CreateUserID { get; set; } + + /// + /// 建立日期 + /// + [Column("CREATE_DATE")] + [DataMember] + public DateTime CreateDate { get; set; } + + /// + /// 修改者 + /// + [Column("UPDATE_USERID")] + public int UpdateUserID { get; set; } + + /// + /// 修改日期 + /// + [Column("UPDATE_DATE")] + public DateTime UpdateDate { get; set; } + + + + } +} \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkClass.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkClass.cs new file mode 100644 index 00000000..5851b844 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkClass.cs @@ -0,0 +1,54 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 工作類別資料檔 + /// + [Table("WORK_CLASS", Schema = "JHAMES")] + public class WorkClass + { + /// + /// 工作類別ID + /// + [Key] + [Column("CLASS_ID")] + [DataMember] + public int ClassID { get; set; } + + /// + /// 工作群組ID + /// + [Column("GROUP_ID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + + public int GroupID { get; set; } + + /// + /// 工作類別名稱 + /// + [Column("CLASS_NAME")] + [DataMember] + [Display(Name = "工作類別名稱")] + [Required(ErrorMessage = "{0},不能空白")] + [StringLength(50, ErrorMessage = "{0},不能大于{1}")] + public string ClassName { get; set; } + + /// + /// 順序 + /// + [Column("SEQ")] + public int SEQ { get; set; } + + /// + /// 條碼资料 + /// + public virtual WorkGroup Group { get; set; } + + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkGroup.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkGroup.cs new file mode 100644 index 00000000..d06bab4b --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkGroup.cs @@ -0,0 +1,44 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 工作群組資料檔 + /// + [Table("WORK_GROUP", Schema = "JHAMES")] + [DataContract] + public class WorkGroup + { + /// + /// 工作群組ID + /// + [Key] + [Column("GROUP_ID")] + [DataMember] + public int GroupID { get; set; } + + /// + /// 工作群組名稱 + /// + [Column("GROUP_NAME")] + [DataMember] + [Display(Name = "工作群組名稱")] + [Required(ErrorMessage = "{0},不能空白")] + [StringLength(5, ErrorMessage = "{0},不能大于{1}")] + public string GroupName { get; set; } + + /// + /// 有效工時 + /// + [Column("GROUP_FLAG")] + [DataMember] + [Display(Name = "有效工時")] + [Required(ErrorMessage = "{0},不能空白")] + public string GroupFlag { get; set; } + + + } +} diff --git a/AMESCoreStudio.WebApi/Models/AMES/WorkManPower.cs b/AMESCoreStudio.WebApi/Models/AMES/WorkManPower.cs new file mode 100644 index 00000000..d4d316c2 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/AMES/WorkManPower.cs @@ -0,0 +1,184 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.AMES +{ + /// + /// 每日出勤資料檔 + /// + [Table("WORK_MANPOWER", Schema = "JHAMES")] + [DataContract] + public class WorkManPower + { + /// + /// 每日出勤ID + /// + [Key] + [Column("POWER_ID")] + [Required(ErrorMessage = "{0},不能空白")] + [DataMember] + public decimal PowerID { get; set; } + + /// + /// 出勤日期 + /// + [Column("POWER_DATE")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "出勤日期")] + public DateTime PowerDate { get; set; } + + /// + /// 員工工號 + /// + [Column("USER_NO")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "員工工號")] + public string UserNo { get; set; } + + /// + /// 員工名稱 + /// + [Column("USER_NAME")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "員工名稱")] + public string UserNane { get; set; } + + /// + /// 制程代碼 + /// + [Column("UNIT_NO")] + [DataMember] + [Display(Name = "制程代碼")] + public string UnitNo { get; set; } + + /// + /// 工作類別ID + /// + [Column("CLASS_ID")] + [DataMember] + [Display(Name = "工作類別ID")] + public int ClassID { get; set; } + + /// + /// 正常加班(H) + /// + [Column("OVER_H")] + [DataMember] + [Display(Name = "正常加班(H)")] + public decimal OvarH { get; set; } + + /// + /// 預加/補班(H) + /// + [Column("PREPAR_REST_H")] + [DataMember] + [Display(Name = "預加/補班(H)")] + public decimal PreparRestH { get; set; } + + /// + /// 實際調休(H) + /// + [Column("FACT_REST_H")] + [DataMember] + [Display(Name = "實際調休(H)")] + public decimal FactRestH { get; set; } + + /// + /// 請假(H) + /// + [Column("LEAVE_H")] + [DataMember] + [Display(Name = "請假(H)")] + public decimal LeaveH { get; set; } + + /// + /// 線別 + /// + [Column("LINE_ID")] + [DataMember] + [Display(Name = "線別")] + public int LineID { get; set; } + + /// + /// 站別ID + /// + [Column("STATION_ID")] + [DataMember] + [Display(Name = "站別")] + public int StationID { get; set; } + + /// + /// 休息時間(Min) + /// + [Column("BREAK_TIME")] + [DataMember] + [Display(Name = "休息時間(Min)")] + public int BreakTime { get; set; } + + /// + /// 廠別 + /// + [Column("WERKS")] + [DataMember] + [Display(Name = "廠別")] + public string Werks { get; set; } + + /// + /// 實際出勤時數(H) + /// + [Column("FACT_WORK_H")] + [DataMember] + [Display(Name = "實際出勤時數(H)")] + public decimal FactWorkH { get; set; } + + /// + /// 出勤班別 + /// + [Column("CLASS_NO")] + [DataMember] + [Display(Name = "出勤班別")] + public string ClassNo { get; set; } + + /// + /// 建立者 + /// + [Column("CREATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "建立者")] + public decimal CreateUserID { get; set; } + + /// + /// 建立日期 + /// + [Column("CREATE_DATE")] + [DataMember] + [Display(Name = "建立日期")] + public DateTime CreateDate { get; set; } + + /// + /// 修改者 + /// + [Column("UPDATE_USERID")] + [DataMember] + [Required(ErrorMessage = "{0},不能空白")] + [Display(Name = "修改者")] + public decimal UpdateUserID { get; set; } + + /// + /// 修改日期 + /// + [Column("UPDATE_DATE")] + [DataMember] + [Display(Name = "修改日期")] + public DateTime UpdateDate { get; set; } + + + + } +} \ No newline at end of file diff --git a/AMESCoreStudio.WebApi/Models/AMESContext.cs b/AMESCoreStudio.WebApi/Models/AMESContext.cs index d0742212..4335198f 100644 --- a/AMESCoreStudio.WebApi/Models/AMESContext.cs +++ b/AMESCoreStudio.WebApi/Models/AMESContext.cs @@ -293,10 +293,10 @@ namespace AMESCoreStudio.WebApi /// public DbSet CycleTimes { get; set; } - /// - /// 不良現象原因代碼資料 - /// - public DbSet NGReasons { get; set; } + ///// + ///// 不良現象原因代碼資料 + ///// + //public DbSet NGReasons { get; set; } /// /// 問題類別資料 @@ -370,10 +370,10 @@ namespace AMESCoreStudio.WebApi /// public DbSet BarcodeItems { get; set; } - /// - ///組件資料 - /// - public DbSet Items { get; set; } + ///// + /////組件資料 + ///// + //public DbSet Items { get; set; } /// ///工時群組資料 diff --git a/AMESCoreStudio.WebApi/Models/BAS/ListObj.cs b/AMESCoreStudio.WebApi/Models/BAS/ListObj.cs new file mode 100644 index 00000000..92044bc5 --- /dev/null +++ b/AMESCoreStudio.WebApi/Models/BAS/ListObj.cs @@ -0,0 +1,36 @@ +using System; +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; +using System.Runtime.Serialization; + +namespace AMESCoreStudio.WebApi.Models.BAS +{ + /// + /// + /// + public class ListObj + { + /// + /// + /// + public string name { get; set; } + + /// + /// + /// + public string value { get; set; } + + /// + /// + /// + public bool selected { get; set; } + + /// + /// + /// + public bool disabled { get; set; } + + + + } +}