Browse Source

1.更新前判维修输入

PTD
Marvin 3 years ago
parent
commit
5e5be937ab
  1. 95
      AMESCoreStudio.Web/Controllers/REPController.cs
  2. 51
      AMESCoreStudio.Web/HttpApis/AMES/IREP.cs
  3. 4
      AMESCoreStudio.Web/ViewModels/REP/REP001ViewModel.cs
  4. 75
      AMESCoreStudio.Web/Views/REP/REP001R.cshtml
  5. 180
      AMESCoreStudio.WebApi/Controllers/AMES/NgRepairBlobsController.cs
  6. 205
      AMESCoreStudio.WebApi/Controllers/AMES/NgRepairsController.cs
  7. 178
      AMESCoreStudio.WebApi/Controllers/AMES/RepairRecordsController.cs
  8. 12
      AMESCoreStudio.WebApi/Controllers/BAS/RepairResponsibleUnitsesController.cs
  9. 12
      AMESCoreStudio.WebApi/Models/AMES/NgRepair.cs
  10. 4
      AMESCoreStudio.WebApi/Models/AMES/NgRepairBlob.cs
  11. 2
      AMESCoreStudio.WebApi/Models/AMES/RepairRecord.cs
  12. 15
      AMESCoreStudio.WebApi/Models/AMESContext.cs
  13. 2
      AMESCoreStudio.WebApi/Models/BAS/RepairResponsibleUnits.cs

95
AMESCoreStudio.Web/Controllers/REPController.cs

@ -16,11 +16,65 @@ namespace AMESCoreStudio.Web.Controllers
{
private readonly ILogger<REPController> _logger;
public readonly IREP _repApi;
public readonly IPPS _ppsApi;
public readonly IBAS _basApi;
public REPController(ILogger<REPController> logger, IREP repApi)
public REPController(ILogger<REPController> logger, IREP repApi, IPPS ppsApi,IBAS basApi)
{
_logger = logger;
_repApi = repApi;
_ppsApi = ppsApi;
_basApi = basApi;
}
private async Task GetRMAReasonList()
{
var result = await _ppsApi.GetRMAReasons();
var RMAReasonList = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++)
{
RMAReasonList.Add(new SelectListItem(result[i].RMAReasonDesc, result[i].RMAReasonNo.ToString()));
}
ViewBag.RMAReasonList = RMAReasonList;
}
private async Task GetRepairTypeList()
{
var result = await _ppsApi.GetRepairTypes();
var RepairTypeList = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++)
{
RepairTypeList.Add(new SelectListItem(result[i].RepairTypeDesc, result[i].RepairTypeNo.ToString()));
}
ViewBag.RepairTypeList = RepairTypeList;
}
private async Task GetNGReasonList()
{
var result = await _ppsApi.GetNGReasons();
var NGReasonList = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++)
{
NGReasonList.Add(new SelectListItem(result[i].NGReasonDesc, result[i].NGReasonNo.ToString()));
}
ViewBag.NGReasonList = NGReasonList;
}
private async Task GetRepairResponsibleUnitList()
{
var result = await _basApi.GetRepairResponsibleUnitses();
var RepairResponsibleUnitList = new List<SelectListItem>();
for (int i = 0; i < result.Count; i++)
{
RepairResponsibleUnitList.Add(new SelectListItem(result[i].RRDesc, result[i].RRID.ToString()));
}
ViewBag.RepairResponsibleUnitList = RepairResponsibleUnitList;
}
#region REP001 前判維修輸入
@ -71,6 +125,11 @@ namespace AMESCoreStudio.Web.Controllers
public async Task<IActionResult> REP001R(int id)
{
await GetRMAReasonList();
await GetRepairTypeList();
await GetNGReasonList();
await GetRepairResponsibleUnitList();
REP001ViewModel model = new REP001ViewModel();
var result1 = await _repApi.GetNgComponent(id);
if (result1.Count != 0)
@ -82,6 +141,18 @@ namespace AMESCoreStudio.Web.Controllers
{
model.ngInfo = result2[0];
}
var result3 = await _repApi.GetRepairRecord((int)result1[0].ComponentID);
if (result3.Count != 0)
{
model.repairRecord = result3[0];
}
var result4 = await _repApi.GetNgRepairByComponent((int)result1[0].ComponentID);
if (result4.Count != 0)
{
model.ngRepair = result4[0];
}
}
return View(model);
@ -108,6 +179,28 @@ namespace AMESCoreStudio.Web.Controllers
result = await _repApi.PutNgComponent((int)model.ngComponent.ComponentID,JsonConvert.SerializeObject(model.ngComponent));
if (model.repairRecord.ComponentID > 0)
{
result = await _repApi.PutRepairRecord((int)model.repairRecord.ComponentID, JsonConvert.SerializeObject(model.repairRecord));
}
else
{
model.repairRecord.NgID = model.ngComponent.NgID;
model.repairRecord.ComponentID = model.ngComponent.ComponentID;
result = await _repApi.PostRepairRecord(JsonConvert.SerializeObject(model.repairRecord));
}
if (model.ngRepair.RepairID > 0)
{
result = await _repApi.PutNgRepair((int)model.ngRepair.RepairID, JsonConvert.SerializeObject(model.ngRepair));
}
else
{
model.ngRepair.NgID = model.ngComponent.NgID;
model.ngRepair.ComponentID = model.ngComponent.ComponentID;
result = await _repApi.PostNgRepair(JsonConvert.SerializeObject(model.ngRepair));
}
if (result.Success)
{
var _msg = "保存成功!";

51
AMESCoreStudio.Web/HttpApis/AMES/IREP.cs

@ -49,6 +49,57 @@ namespace AMESCoreStudio.Web
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/NgComponents/{id}")]
ITask<ResultModel<NgComponent>> PutNgComponent(int id, [FromBody, RawJsonContent] string model);
/// <summary>
/// 根據COMPONENT_ID獲取指定維修過程資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/RepairRecords/{id}")]
ITask<List<RepairRecord>> GetRepairRecord(int id);
/// <summary>
/// 新增維修過程資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/RepairRecords")]
ITask<ResultModel<RepairRecord>> PostRepairRecord([FromBody, RawJsonContent] string model);
/// <summary>
/// 更新維修過程資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/RepairRecords/{id}")]
ITask<ResultModel<RepairRecord>> PutRepairRecord(int id, [FromBody, RawJsonContent] string model);
/// <summary>
/// 根據ID獲取指定維修過程資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/NgRepairs/{id}")]
ITask<List<NgRepair>> GetNgRepair(int id);
/// <summary>
/// 根據COMPONENT_ID獲取指定維修過程資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/NgRepairs/Component/{id}")]
ITask<List<NgRepair>> GetNgRepairByComponent(int id);
/// <summary>
/// 新增不良維修資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPost("api/NgRepairs")]
ITask<ResultModel<NgRepair>> PostNgRepair([FromBody, RawJsonContent] string model);
/// <summary>
/// 更新不良維修資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/NgRepairs/{id}")]
ITask<ResultModel<NgRepair>> PutNgRepair(int id, [FromBody, RawJsonContent] string model);
#endregion
}
}

4
AMESCoreStudio.Web/ViewModels/REP/REP001ViewModel.cs

@ -14,5 +14,9 @@ namespace AMESCoreStudio.Web.ViewModels
public NgComponent ngComponent { get; set; }
public RepairRecord repairRecord { get; set; }
public NgRepair ngRepair { get; set; }
}
}

75
AMESCoreStudio.Web/Views/REP/REP001R.cshtml

@ -32,6 +32,13 @@
<input type="hidden" asp-for="ngComponent.XOffsetAvg" />
<input type="hidden" asp-for="ngComponent.YOffsetAvg" />
<input type="hidden" asp-for="repairRecord.ComponentID" />
<input type="hidden" asp-for="repairRecord.NgID" />
<input type="hidden" asp-for="ngRepair.RepairID" />
<input type="hidden" asp-for="ngRepair.ComponentID" />
<input type="hidden" asp-for="ngRepair.NgID" />
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" style="color:red">條碼資料</label>
@ -129,10 +136,76 @@
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" style="color:red">維修記錄過程</label>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="repairRecord.RepairDesc" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="repairRecord.RepairDesc" class="layui-input" autocomplete="off" style="width:810px;" />
<span asp-validation-for="repairRecord.RepairDesc" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" style="color:red">維修資料輸入</label>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="ngRepair.RepairNo" class="layui-form-label"></label>
<div class="layui-input-inline">
<select asp-for="ngRepair.RepairNo" asp-items="@ViewBag.RMAReasonList" class=""></select>
<span asp-validation-for="ngRepair.RepairNo" class="layui-bg-red"></span>
</div>
<label asp-for="ngRepair.RepairTypeNo" class="layui-form-label"></label>
<div class="layui-input-inline">
<select asp-for="ngRepair.RepairTypeNo" asp-items="@ViewBag.RepairTypeList" class=""></select>
<span asp-validation-for="ngRepair.RepairTypeNo" class="layui-bg-red"></span>
</div>
<label asp-for="ngRepair.NgTypeNo" class="layui-form-label"></label>
<div class="layui-input-inline">
<select asp-for="ngRepair.NgTypeNo" asp-items="@ViewBag.NGReasonList" class=""></select>
<span asp-validation-for="ngRepair.NgTypeNo" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="ngRepair.RepairResponsibleID" class="layui-form-label"></label>
<div class="layui-input-inline">
<select asp-for="ngRepair.RepairResponsibleID" asp-items="@ViewBag.RepairResponsibleUnitList" class=""></select>
<span asp-validation-for="ngRepair.RepairResponsibleID" class="layui-bg-red"></span>
</div>
<label asp-for="ngRepair.RmaNo" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="ngRepair.RmaNo" class="layui-input" autocomplete="off" />
<span asp-validation-for="ngRepair.RmaNo" class="layui-bg-red"></span>
</div>
<label asp-for="ngRepair.PartNo" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="ngRepair.PartNo" class="layui-input" autocomplete="off" />
<span asp-validation-for="ngRepair.PartNo" class="layui-bg-red"></span>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="ngRepair.RepairDesc" class="layui-form-label"></label>
<div class="layui-input-inline">
<input asp-for="ngRepair.RepairDesc" class="layui-input" autocomplete="off" style="width:810px;" />
<span asp-validation-for="ngRepair.RepairDesc" class="layui-bg-red"></span>
</div>
</div>
</div>
<div style="text-align:center">
<div class="layui-inline">
<span style="color: firebrick;word-break: break-all;" class="text-danger offset-sm-3">@Html.ValidationMessage("error")</span>
<input type="submit" value="確認" class="btn btn-primary offset-sm-3" />
<input type="submit" value="確認" class="btn btn-primary offset-sm-3" />
</div>
</div>

180
AMESCoreStudio.WebApi/Controllers/AMES/NgRepairBlobsController.cs

@ -0,0 +1,180 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 維修解碼上傳圖檔資料表
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class NgRepairBlobsController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public NgRepairBlobsController(AMESContext context)
{
_context = context;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
// GET: api/NgRepairBlobs
[HttpGet]
public async Task<ActionResult<IEnumerable<NgRepairBlob>>> GetNgRepairBlob()
{
return await _context.NgRepairBlobs.ToListAsync();
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/NgRepairBlobs/5
[HttpGet("{id}")]
public async Task<ActionResult<IEnumerable<NgRepairBlob>>> GetNgRepairBlob(int id)
{
IQueryable<NgRepairBlob> q = _context.NgRepairBlobs;
q = q.Where(p => p.RepairID.Equals(id));
var ngRepairBlob = await q.ToListAsync();
if (ngRepairBlob == null)
{
return NotFound();
}
return ngRepairBlob;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="ngRepairBlob"></param>
/// <returns></returns>
// PUT: api/NgRepairBlobs/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<ResultModel<NgRepairBlob>> PutNgRepairBlob(int id, NgRepairBlob ngRepairBlob)
{
ResultModel<NgRepairBlob> result = new ResultModel<NgRepairBlob>();
if (id != ngRepairBlob.RepairID)
{
result.Success = false;
result.Msg = "不良維修ID錯誤";
return result;
}
_context.Entry(ngRepairBlob).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!NgRepairBlobExists(id))
{
result.Success = false;
result.Msg = "不良維修ID不存在";
return result;
}
else
{
throw;
}
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="ngRepairBlob"></param>
/// <returns></returns>
// POST: api/NgRepairBlobs
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPost]
public async Task<ResultModel<NgRepairBlob>> PostNgRepairBlob(NgRepairBlob ngRepairBlob)
{
ResultModel<NgRepairBlob> result = new ResultModel<NgRepairBlob>();
_context.NgRepairBlobs.Add(ngRepairBlob);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (NgRepairBlobExists(ngRepairBlob.RepairID))
{
result.Success = false;
result.Msg = "不良維修ID重複";
return result;
}
else
{
throw;
}
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// DELETE: api/NgRepairBlobs/5
[HttpDelete("{id}")]
public async Task<ResultModel<NgRepairBlob>> DeleteNgRepairBlob(decimal id)
{
ResultModel<NgRepairBlob> result = new ResultModel<NgRepairBlob>();
var ngRepairBlob = await _context.NgRepairBlobs.FindAsync(id);
if (ngRepairBlob == null)
{
result.Success = false;
result.Msg = "不良維修ID不存在";
return result;
}
_context.NgRepairBlobs.Remove(ngRepairBlob);
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
return result;
}
private bool NgRepairBlobExists(decimal id)
{
return _context.NgRepairBlobs.Any(e => e.RepairID == id);
}
}
}

205
AMESCoreStudio.WebApi/Controllers/AMES/NgRepairsController.cs

@ -0,0 +1,205 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi;
using AMESCoreStudio.WebApi.Models.AMES;
using AMESCoreStudio.CommonTools.Result;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 不良維修資料檔
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class NgRepairsController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public NgRepairsController(AMESContext context)
{
_context = context;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
// GET: api/NgRepairs
[HttpGet]
public async Task<ActionResult<IEnumerable<NgRepair>>> GetNgRepair()
{
return await _context.NgRepairs.ToListAsync();
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/NgRepairs/5
[HttpGet("{id}")]
public async Task<ActionResult<IEnumerable<NgRepair>>> GetNgRepair(int id)
{
IQueryable<NgRepair> q = _context.NgRepairs;
q = q.Where(p => p.RepairID.Equals(id));
var ngRepair = await q.ToListAsync();
if (ngRepair == null)
{
return NotFound();
}
return ngRepair;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/NgRepairs/5
[HttpGet("Component/{id}")]
public async Task<ActionResult<IEnumerable<NgRepair>>> GetNgRepairByComponent(int id)
{
IQueryable<NgRepair> q = _context.NgRepairs;
q = q.Where(p => p.ComponentID.Equals(id));
var ngRepair = await q.ToListAsync();
if (ngRepair == null)
{
return NotFound();
}
return ngRepair;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="ngRepair"></param>
/// <returns></returns>
// PUT: api/NgRepairs/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<ResultModel<NgRepair>> PutNgRepair(int id, NgRepair ngRepair)
{
ResultModel<NgRepair> result = new ResultModel<NgRepair>();
if (id != ngRepair.RepairID)
{
result.Success = false;
result.Msg = "不良維修ID錯誤";
return result;
}
_context.Entry(ngRepair).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!NgRepairExists(id))
{
result.Success = false;
result.Msg = "不良維修ID不存在";
return result;
}
else
{
throw;
}
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="ngRepair"></param>
/// <returns></returns>
// POST: api/NgRepairs
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPost]
public async Task<ResultModel<NgRepair>> PostNgRepair(NgRepair ngRepair)
{
ResultModel<NgRepair> result = new ResultModel<NgRepair>();
Helper helper = new Helper(_context);
ngRepair.RepairID = helper.GetIDKey("REPAIR_ID").Result;
_context.NgRepairs.Add(ngRepair);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (NgRepairExists(ngRepair.RepairID))
{
result.Success = false;
result.Msg = "不良維修ID重複";
return result;
}
else
{
throw;
}
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// DELETE: api/NgRepairs/5
[HttpDelete("{id}")]
public async Task<ResultModel<NgRepair>> DeleteNgRepair(decimal id)
{
ResultModel<NgRepair> result = new ResultModel<NgRepair>();
var ngRepair = await _context.NgRepairs.FindAsync(id);
if (ngRepair == null)
{
result.Success = false;
result.Msg = "不良維修ID不存在";
return result;
}
_context.NgRepairs.Remove(ngRepair);
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
return result;
}
private bool NgRepairExists(decimal id)
{
return _context.NgRepairs.Any(e => e.RepairID == id);
}
}
}

178
AMESCoreStudio.WebApi/Controllers/AMES/RepairRecordsController.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;
using AMESCoreStudio.CommonTools.Result;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 維修紀錄資料檔
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class RepairRecordsController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
///
/// </summary>
/// <param name="context"></param>
public RepairRecordsController(AMESContext context)
{
_context = context;
}
/// <summary>
///
/// </summary>
/// <returns></returns>
// GET: api/RepairRecords
[HttpGet]
public async Task<ActionResult<IEnumerable<RepairRecord>>> GetRepairRecord()
{
return await _context.RepairRecords.ToListAsync();
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// GET: api/RepairRecords/5
[HttpGet("{id}")]
public async Task<ActionResult<IEnumerable<RepairRecord>>> GetRepairRecord(int id)
{
IQueryable<RepairRecord> q = _context.RepairRecords;
q = q.Where(p => p.ComponentID.Equals(id));
var repairRecord = await q.ToListAsync();
if (repairRecord == null)
{
return NotFound();
}
return repairRecord;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="repairRecord"></param>
/// <returns></returns>
// PUT: api/RepairRecords/5
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPut("{id}")]
public async Task<ResultModel<RepairRecord>> PutRepairRecord(int id, RepairRecord repairRecord)
{
ResultModel<RepairRecord> result = new ResultModel<RepairRecord>();
if (id != repairRecord.ComponentID)
{
result.Success = false;
result.Msg = "不良零件ID錯誤";
return result;
}
_context.Entry(repairRecord).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateConcurrencyException)
{
if (!RepairRecordExists(id))
{
result.Success = false;
result.Msg = "不良零件ID不存在";
return result;
}
else
{
throw;
}
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="repairRecord"></param>
/// <returns></returns>
// POST: api/RepairRecords
// To protect from overposting attacks, enable the specific properties you want to bind to, for
// more details, see https://go.microsoft.com/fwlink/?linkid=2123754.
[HttpPost]
public async Task<ResultModel<RepairRecord>> PostRepairRecord(RepairRecord repairRecord)
{
ResultModel<RepairRecord> result = new ResultModel<RepairRecord>();
_context.RepairRecords.Add(repairRecord);
try
{
await _context.SaveChangesAsync();
}
catch (DbUpdateException)
{
if (RepairRecordExists(repairRecord.ComponentID))
{
result.Success = false;
result.Msg = "不良零件ID重複";
return result;
}
else
{
throw;
}
}
result.Success = true;
result.Msg = "OK";
return result;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// DELETE: api/RepairRecords/5
[HttpDelete("{id}")]
public async Task<ResultModel<RepairRecord>> DeleteRepairRecord(decimal id)
{
ResultModel<RepairRecord> result = new ResultModel<RepairRecord>();
var repairRecord = await _context.RepairRecords.FindAsync(id);
if (repairRecord == null)
{
result.Success = false;
result.Msg = "不良零件ID不存在";
return result;
}
_context.RepairRecords.Remove(repairRecord);
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
return result;
}
private bool RepairRecordExists(decimal id)
{
return _context.RepairRecords.Any(e => e.ComponentID == id);
}
}
}

12
AMESCoreStudio.WebApi/Controllers/BAS/RepairResponsibleUnitsesController.cs

@ -11,7 +11,7 @@ using AMESCoreStudio.WebApi.Models.BAS;
namespace AMESCoreStudio.WebApi.Controllers.BAS
{
/// <summary>
/// 工廠资料维护
/// 維修責任單位维护
/// </summary>
[Route("api/[controller]")]
[ApiController]
@ -29,7 +29,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS
}
/// <summary>
/// 获取全部工廠资料
/// 获取維修責任單位资料
/// </summary>
/// <returns></returns>
// GET: api/RepairResponsibleUnitses
@ -45,7 +45,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS
}
/// <summary>
/// 用ID获取该工廠资料
/// 用ID获取維修責任單位资料
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
@ -67,7 +67,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS
}
/// <summary>
/// 更新工廠资料
/// 更新維修責任單位资料
/// </summary>
/// <param name="id"></param>
/// <param name="repairResponsibleUnits"></param>
@ -105,7 +105,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS
}
/// <summary>
/// 新增工廠资料
/// 新增維修責任單位资料
/// </summary>
/// <param name="repairResponsibleUnits"></param>
/// <returns></returns>
@ -126,7 +126,7 @@ namespace AMESCoreStudio.WebApi.Controllers.BAS
}
/// <summary>
/// 删除工廠资料
/// 删除維修責任單位资料
/// </summary>
/// <param name="id"></param>
/// <returns></returns>

12
AMESCoreStudio.WebApi/Models/AMES/NgRepair.cs

@ -35,6 +35,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REPAIR_ID", TypeName = "NUMBER")]
[DataMember]
[Required]
[Key]
public decimal RepairID { get; set; }
/// <summary>
@ -44,6 +45,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("MISSING")]
[StringLength(1)]
[DataMember]
[Display(Name = "是否誤判")]
public string Missing { get; set; } = "N";
/// <summary>
@ -53,6 +55,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REPAIR_NO")]
[StringLength(6)]
[DataMember]
[Display(Name = "維修代碼")]
public string RepairNo { get; set; } = "N/A";
/// <summary>
@ -62,6 +65,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REPAIR_DESC")]
[StringLength(100)]
[DataMember]
[Display(Name = "維修說明")]
public string RepairDesc { get; set; }
/// <summary>
@ -71,15 +75,16 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REPLACE")]
[StringLength(1)]
[DataMember]
[Display(Name = "更換組件")]
public string Replace { get; set; } = "N";
/// <summary>
/// 備註
/// </summary>
[Required]
[Column("MEMO")]
[StringLength(1024)]
[DataMember]
[Display(Name = "備註")]
public string Memo { get; set; }
/// <summary>
@ -89,6 +94,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("PART_NO")]
[StringLength(30)]
[DataMember]
[Display(Name = "組件料號")]
public string PartNo { get; set; }
/// <summary>
@ -98,6 +104,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("RMA_NO")]
[StringLength(20)]
[DataMember]
[Display(Name = "RMA單號")]
public string RmaNo { get; set; }
/// <summary>
@ -107,6 +114,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REPAIR_TYPE_NO")]
[StringLength(6)]
[DataMember]
[Display(Name = "維修方式")]
public string RepairTypeNo { get; set; }
/// <summary>
@ -114,6 +122,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// </summary>
[Column("REPAIR_RESPONSIBLE_ID")]
[DataMember]
[Display(Name = "責任單位")]
public int RepairResponsibleID { get; set; }
/// <summary>
@ -123,6 +132,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("NG_TYPE_NO")]
[StringLength(6)]
[DataMember]
[Display(Name = "不良類別")]
public string NgTypeNo { get; set; }
/// <summary>

4
AMESCoreStudio.WebApi/Models/AMES/NgRepairBlob.cs

@ -19,6 +19,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("REPAIR_ID", TypeName = "NUMBER")]
[DataMember]
[Required]
[Key]
public decimal RepairID { get; set; }
/// <summary>
@ -28,6 +29,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("IMAGE_NAME1")]
[StringLength(50)]
[DataMember]
[Display(Name = "圖檔名稱1")]
public string ImageName1 { get; set; }
/// <summary>
@ -45,6 +47,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("IMAGE_NAME2")]
[StringLength(50)]
[DataMember]
[Display(Name = "圖檔名稱2")]
public string ImageName2 { get; set; }
/// <summary>
@ -63,6 +66,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Column("IMAGE_NAME3")]
[StringLength(50)]
[DataMember]
[Display(Name = "圖檔名稱3")]
public string ImageName3 { get; set; }
/// <summary>

2
AMESCoreStudio.WebApi/Models/AMES/RepairRecord.cs

@ -24,6 +24,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// <summary>
/// 不良零件ID
/// </summary>
[Key]
[Column("COMPONENT_ID", TypeName = "NUMBER")]
[DataMember]
[Required]
@ -35,6 +36,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[Required]
[Column("REPAIR_DESC")]
[StringLength(100)]
[Display(Name = "維修過程敘述")]
[DataMember]
public string RepairDesc { get; set; }

15
AMESCoreStudio.WebApi/Models/AMESContext.cs

@ -594,6 +594,21 @@ namespace AMESCoreStudio.WebApi
/// 測試不良基本資料檔
/// </summary>
public DbSet<NgComponent> NgComponents { get; set; }
/// <summary>
/// 維修紀錄資料檔
/// </summary>
public DbSet<RepairRecord> RepairRecords { get; set; }
/// <summary>
/// 不良維修資料檔
/// </summary>
public DbSet<NgRepair> NgRepairs { get; set; }
/// <summary>
/// 維修解碼上傳圖檔資料表
/// </summary>
public DbSet<NgRepairBlob> NgRepairBlobs { get; set; }
}
}

2
AMESCoreStudio.WebApi/Models/BAS/RepairResponsibleUnits.cs

@ -6,7 +6,7 @@ using System.Runtime.Serialization;
namespace AMESCoreStudio.WebApi.Models.BAS
{
/// <summary>
/// 站别資料
/// 維修責任單位
/// </summary>
[Table("REPAIR_RESPONSIBLE_UNITS", Schema = "JHAMES")]
[DataContract]

Loading…
Cancel
Save