Browse Source

1. 修正工單資料 流程改抓料號流程及備註

PTD
ray 3 years ago
parent
commit
0aa16bd197
  1. 62
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 19
      AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs
  3. 9
      AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs
  4. 4
      AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml
  5. 31
      AMESCoreStudio.Web/Views/PCS/PCS003.cshtml
  6. 183
      AMESCoreStudio.WebApi/Controllers/AMES/MaterialFlowController.cs
  7. 8
      AMESCoreStudio.WebApi/Models/BAS/MaterialFlow.cs

62
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -1050,6 +1050,48 @@ namespace AMESCoreStudio.Web.Controllers
}
return Json(new Table() { count = 0, data = null });
}
/// <summary>
/// 料號流程
/// </summary>
/// <param name="unit_no"></param>
/// <returns></returns>
[HttpPost]
public async Task<JsonResult> GetMaterialFlowRuleJson(string itemno, string unit_no)
{
var result = await _pcsApi.GetMaterialFlowsByQuery(itemno, unit_no);
var item = new List<SelectListItem>();
//item.Add(new SelectListItem("全部", "0"));
for (int i = 0; i < result.Count; i++)
{
item.Add(new SelectListItem(result[i].FlowRule.FlowRuleName, result[i].FlowRuleID.ToString()));
}
ViewBag.MaterialFlowRule = item;
//将数据Json化并传到前台视图
return Json(new { data = item });
}
/// <summary>
/// 回傳料號流程_備註
/// </summary>
/// <param name="value"></param>
/// <returns></returns>
[HttpPost]
public async Task<JsonResult> getMaterialFlowRuleRemark(string itemno, string unit_no, int flowID)
{
var q = await _pcsApi.GetMaterialFlowsByQuery(itemno, unit_no);
var result = q.Where(w => w.FlowRuleID == flowID).FirstOrDefault();
//将数据Json化并传到前台视图
if (result == null)
return Json(new { data = "" });
else
return Json(new { data = result.MaterialFlowRemark });
}
#endregion
[ResponseCache(Duration = 0)]
@ -1504,6 +1546,14 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
model.wipInfoBlobs = await _pcsApi.GetWipInfoBlob(model.wipInfo.WipNO);
// 抓料號流程備註
var q2 = await _pcsApi.GetMaterialFlowsByQuery(model.wipAtt.ItemNO, model.wipInfo.UnitNO);
if (q2.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault() != null)
{
model.MaterialFlowRemark = q2.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault().MaterialFlowRemark;
}
}
await GetItemsList();
await GetProductType();
@ -1512,7 +1562,7 @@ namespace AMESCoreStudio.Web.Controllers
await GetLineInfo();
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
await GetMaterialFlowRuleJson(model.wipAtt.ItemNO, model.wipInfo.UnitNO);
GetWipSEQType();
GetBurnType();
GetPartsBakeType();
@ -1591,6 +1641,14 @@ namespace AMESCoreStudio.Web.Controllers
model.WipSops = await _pcsApi.GetWipSopByWipNo(model.wipInfo.WipNO);
model.wipInfoBlobs = await _pcsApi.GetWipInfoBlob(model.wipInfo.WipNO);
// 抓料號流程備註
var q1 = await _pcsApi.GetMaterialFlowsByQuery(model.wipAtt.ItemNO, model.wipInfo.UnitNO);
if (q1.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault() != null)
{
model.MaterialFlowRemark = q1.Where(w => w.FlowRuleID == model.wipInfo.FlowRuleID).FirstOrDefault().MaterialFlowRemark;
}
}
await GetItemsList();
await GetProductType();
@ -1599,7 +1657,7 @@ namespace AMESCoreStudio.Web.Controllers
await GetLineInfo();
await GetMFGType();
await GetProcessTypes();
await GetFlowRuleList();
await GetMaterialFlowRuleJson(model.wipAtt.ItemNO, model.wipInfo.UnitNO);
GetWipSEQType();
GetBurnType();
GetPartsBakeType();

19
AMESCoreStudio.Web/HttpApis/AMES/IPCS.cs

@ -622,7 +622,7 @@ namespace AMESCoreStudio.Web
ITask<ResultModel<MaterialSop>> PutMaterialSop([FromBody, RawJsonContent] string model);
/// <summary>
/// SOP文件變更狀態
/// SOP文件刪除
/// </summary>
/// <returns></returns>
@ -630,6 +630,23 @@ namespace AMESCoreStudio.Web
ITask<ResultModel<MaterialSop>> DeleteMaterialSop(int id);
#endregion
#region MaterialFlow 料號流程資料檔
/// <summary>
/// 料號流程資料檔查詢
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpGet("api/MaterialFlow/Query/{itemno}/{unitNo}")]
ITask<List<MaterialFlow>> GetMaterialFlowsByQuery(string itemno , string unitno);
/// <summary>
/// SOP文件變更狀態
/// </summary>
/// <returns></returns>
//[WebApiClient.Attributes.HttpPut("api/MaterialSop")]
//ITask<ResultModel<MaterialSop>> PutMaterialSop([FromBody, RawJsonContent] string model);
#endregion
#region PCS024組件維護相關
/// <summary>

9
AMESCoreStudio.Web/ViewModels/PCS/WipViewModel.cs

@ -22,7 +22,7 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
wipInfoBlobs = new List<WipInfoBlob>();
wipMAC = new WipMAC();
wipBarcodeOther = new WipBarcodeOther();
}
/// <summary>
@ -85,13 +85,18 @@ namespace AMESCoreStudio.Web.ViewModels.PCS
/// 工單圖檔資料
/// </summary>
public WipInfoBlob wipInfoBlob { get; set; }
/// <summary>
/// 流程作業備註
/// </summary>
public string MaterialFlowRemark { get; set; }
}
public class WipDataViewModel : WipNoDetailViewModel
{
public WipDataViewModel()
{
}
/// <summary>

4
AMESCoreStudio.Web/Views/PCS/PCS001R.cshtml

@ -354,7 +354,7 @@
<div class="layui-inline">
<label asp-for="wipInfo.FlowRuleID" class="layui-form-label"></label>
<div class="layui-input-inline">
<select disabled lay-filter="flow" asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.FlowRuleList" class=""></select>
<select disabled lay-filter="flow" asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.MaterialFlowRule" class=""></select>
</div>
<input id="flowId" type="hidden" name="flowId" value="" />
</div>
@ -365,7 +365,7 @@
<div class="layui-form-item">
<label class="layui-form-label">作業流程註解</label>
<div class="layui-input-block">
<textarea placeholder="請輸入作業流程註解" class="layui-textarea"></textarea>
<textarea placeholder="請輸入作業流程註解" asp-for="MaterialFlowRemark" class="layui-textarea"></textarea>
</div>
</div>
<table id="rulestionOld" class="layui-table">

31
AMESCoreStudio.Web/Views/PCS/PCS003.cshtml

@ -383,22 +383,22 @@
<div class="layui-tab-item">
<div class="layui-form-item">
<div class="layui-inline">
<label asp-for="wipInfo.FlowRuleID" class="layui-form-label"></label>
<label asp-for="wipInfo.FlowRuleID" as class="layui-form-label"></label>
<div class="layui-input-inline">
<select lay-filter="flow" asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.FlowRuleList" class=""></select>
<select lay-filter="flow" asp-for="wipInfo.FlowRuleID" asp-items="@ViewBag.MaterialFlowRule" class=""></select>
</div>
<input id="flowId" type="hidden" name="flowId" value=@Model.wipInfo.FlowRuleID />
</div>
<div class="layui-inline">
<input @(Model.wipInfo.SFISFlowCk == "Y" ? "checked" : "") type="checkbox" title="途程確認" name="wipInfo.SFISFlowCk" />
</div>
<table class="layui-hide" id="ruleStation" lay-filter="ruleStation"></table>
<div class="layui-form-item">
<label class="layui-form-label">作業流程註解</label>
<div class="layui-input-block">
<textarea placeholder="請輸入作業流程註解" class="layui-textarea"></textarea>
<textarea placeholder="請輸入作業流程註解" asp-for="MaterialFlowRemark" class="layui-textarea"></textarea>
</div>
</div>
<table class="layui-hide" id="ruleStation" lay-filter="ruleStation"></table>
<table id="rulestionOld" class="layui-table">
<thead>
<tr>
@ -1107,7 +1107,6 @@
$("#GetMAC").hide();
}
getFlowRuleList($("#unitNo").val());
getLineInfoList($("#unitNo").val());
});
@ -1178,9 +1177,9 @@
{
$.ajax(
{
url: "@Url.Action("GetFlowRuleJson", "BAS")",
url: "@Url.Action("GetMaterialFlowRuleJson", "PCS")",
dataType: 'json',
data: { "unit_no": $("#unit").val()},
data: { "itemno": $("#wipAtt_ItemNO").val(),"unit_no": $("#unit").val()},
type: 'post',
success: function (result)
{
@ -1246,12 +1245,30 @@
// RuleStation
function RuleStation(NewID) {
$.ajax(
{
url: "@Url.Action("getMaterialFlowRuleRemark", "PCS")",
dataType: 'json',
data: { "itemno": $("#wipAtt_ItemNO").val(), "unit_no": $("#unit").val(), "flowID": NewID },
type: 'post',
success: function (result)
{
$("#MaterialFlowRemark").val(result.data);
},
error: function (result)
{
alert(result);
}
});
if (NewID == null) {
NewID = 0;
}
var OldID = $("#flowId").val();
$("#rulestionOld").empty();
var tableCols_rule = [[
{

183
AMESCoreStudio.WebApi/Controllers/AMES/MaterialFlowController.cs

@ -0,0 +1,183 @@
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using AMESCoreStudio.WebApi.Models.BAS;
using AMESCoreStudio.CommonTools.Result;
namespace AMESCoreStudio.WebApi.Controllers.AMES
{
/// <summary>
/// 料號基本資料檔Controller
/// </summary>
[Route("api/[controller]")]
[ApiController]
public class MaterialFlowController : ControllerBase
{
private readonly AMESContext _context;
/// <summary>
/// 建構式
/// </summary>
/// <param name="context"></param>
public MaterialFlowController(AMESContext context)
{
_context = context;
}
/// <summary>
/// 查詢料號流程資料檔
/// </summary>
/// <returns></returns>
// GET: api/<MaterialFlowsController>
[HttpGet]
public async Task<ActionResult<IEnumerable<MaterialFlow>>> GetMaterialFlows()
{
IQueryable<MaterialFlow> q = _context.MaterialFlows;
q = q.OrderBy(p => p.MFID);
var MaterialFlows = await q.ToListAsync();
return MaterialFlows;
}
/// <summary>
/// 料號流程資料檔
/// </summary>
/// <param name="id">ItemID</param>
/// <returns></returns>
[HttpGet("{id}")]
public async Task<IEnumerable<MaterialFlow>> GetMaterialFlow(int id)
{
IQueryable<MaterialFlow> q = _context.MaterialFlows;
var result = await q.Where(p => p.MFID == id).ToListAsync();
return result;
}
/// <summary>
/// 料號流程查詢
/// </summary>
/// <param name="itemno">料號</param>
/// <param name="unitNo">站別</param>
/// <returns></returns>
[HttpGet("Query/{itemno}/{unitNo}")]
public async Task<ActionResult<IEnumerable<MaterialFlow>>> GetMaterialFlowsByQuery(string itemno, string unitNo)
{
IQueryable<MaterialFlow> q = _context.MaterialFlows;
MaterialItemController materialItemController = new MaterialItemController(_context);
var MaterialItem = materialItemController.GetMaterialItemByItemNO(itemno);
if (MaterialItem != null)
q = q.Where(w => w.ItemID == MaterialItem.Result.ItemID && w.UnitNo == unitNo);
else
q = q.Where(w => w.ItemID == -1);
var materialFlows = await q.ToListAsync();
return materialFlows;
}
/// <summary>
/// 新增料號流程資料檔
/// </summary>
/// <param name="MaterialFlow"></param>
/// <returns></returns>
[HttpPost]
public async Task<ResultModel<MaterialFlow>> PostMaterialFlows([FromBody] MaterialFlow MaterialFlow)
{
ResultModel<MaterialFlow> result = new ResultModel<MaterialFlow>();
Helper helper = new Helper(_context);
MaterialFlow.MFID = helper.GetIDKey("MF_ID").Result;
_context.MaterialFlows.Add(MaterialFlow);
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
}
catch (Exception ex)
{
result.Success = false;
result.Msg = ex.InnerException.Message;
}
return result;
}
/// <summary>
/// 修改料號流程資料檔
/// </summary>
/// <returns></returns>
[HttpPut("{id}")]
public async Task<ResultModel<MaterialFlow>> PutMaterialFlows(int id, [FromBody] MaterialFlow materialFlow)
{
ResultModel<MaterialFlow> result = new ResultModel<MaterialFlow>();
if (id != materialFlow.MFID)
{
result.Success = false;
result.Msg = "料號錯誤";
return result;
}
//_
//_context.Attach(materialFlow);
//// 指定更新某個欄位
//_context.Entry(materialFlow).Property(p => p.FlowSEQ).IsModified = true;
//_context.Entry(materialFlow).Property(p => p.ItemID).IsModified = true;
//_context.Entry(materialFlow).Property(p => p.FlowRuleID).IsModified = true;
//_context.Entry(materialFlow).Property(p => p.UnitNo).IsModified = true;
_context.Entry(materialFlow).State = EntityState.Modified;
try
{
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
return result;
}
catch (DbUpdateConcurrencyException ex)
{
result.Success = false;
result.Msg = ex.InnerException.Message;
return result;
//throw;
}
}
/// <summary>
/// Delete料號流程
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
// DELETE: api/StandardWorkTimes/5
[HttpDelete("{id}")]
public async Task<ResultModel<MaterialFlow>> DeleteMaterialFlow(int id)
{
ResultModel<MaterialFlow> result = new ResultModel<MaterialFlow>();
var materialFlow = await _context.MaterialFlows.Where(m => m.MFID == id).FirstOrDefaultAsync();
if (materialFlow == null)
{
result.Success = false;
result.Msg = "序號不存在";
return result;
}
_context.MaterialFlows.Remove(materialFlow);
await _context.SaveChangesAsync();
result.Success = true;
result.Msg = "OK";
return result;
}
private bool MaterialFlowExists(int id)
{
return _context.MaterialFlows.Any(e => e.MFID == id);
}
}
}

8
AMESCoreStudio.WebApi/Models/BAS/MaterialFlow.cs

@ -68,6 +68,14 @@ namespace AMESCoreStudio.WebApi.Models.BAS
public string MaterialFlowStatus { get; set; }
/// <summary>
/// 料號作業流程
/// </summary>
[Column("MATERIAL_FLOW_REMARK")]
[Display(Name = "料號作業流程")]
[DataMember]
public string MaterialFlowRemark { get; set; }
/// <summary>
/// 創建者ID
/// </summary>

Loading…
Cancel
Save