Browse Source

1.修改前判维修输入,增加过站逻辑

PTD
Marvin 3 years ago
parent
commit
fa6f5fa50d
  1. 91
      AMESCoreStudio.Web/Controllers/REPController.cs
  2. 7
      AMESCoreStudio.Web/HttpApis/AMES/IREP.cs
  3. 93
      AMESCoreStudio.Web/Views/REP/REP001R.cshtml

91
AMESCoreStudio.Web/Controllers/REPController.cs

@ -12,6 +12,7 @@ using System.ComponentModel.DataAnnotations;
using System.IO;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Hosting;
using AMESCoreStudio.WebApi.DTO.AMES;
namespace AMESCoreStudio.Web.Controllers
{
@ -21,14 +22,16 @@ namespace AMESCoreStudio.Web.Controllers
public readonly IREP _repApi;
public readonly IPPS _ppsApi;
public readonly IBAS _basApi;
public readonly IPCS _pcsApi;
private readonly IWebHostEnvironment _env;
public REPController(ILogger<REPController> logger, IREP repApi, IPPS ppsApi,IBAS basApi, IWebHostEnvironment env)
public REPController(ILogger<REPController> logger, IREP repApi, IPPS ppsApi,IBAS basApi,IPCS pcsApi, IWebHostEnvironment env)
{
_logger = logger;
_repApi = repApi;
_ppsApi = ppsApi;
_basApi = basApi;
_pcsApi = pcsApi;
_env = env;
}
@ -300,6 +303,12 @@ namespace AMESCoreStudio.Web.Controllers
ModelState.AddModelError("error", "請選擇要上傳檔案");
}
if (model.ngRepair.Missing == "Y")
{
model.ngRepair.RepairNo = "N/A";
model.ngComponent.Status = 2;
}
result = await _repApi.PutNgComponent((int)model.ngComponent.ComponentID, JsonConvert.SerializeObject(model.ngComponent));
if (model.repairRecord.ComponentID > 0)
@ -313,11 +322,6 @@ namespace AMESCoreStudio.Web.Controllers
result = await _repApi.PostRepairRecord(JsonConvert.SerializeObject(model.repairRecord));
}
if (model.ngRepair.Missing == "Y")
{
model.ngRepair.RepairNo = "N/A";
}
if (model.ngRepair.RepairID > 0)
{
result = await _repApi.PutNgRepair((int)model.ngRepair.RepairID, JsonConvert.SerializeObject(model.ngRepair));
@ -374,6 +378,81 @@ namespace AMESCoreStudio.Web.Controllers
// ModelState.AddModelError("error", result.Msg);
//}
bool repairComplete = true;
var ng_component = await _repApi.GetNgComponentByNGID(model.ngInfo.NgID);
for (int i = 0; i < ng_component.Count; i++)
{
if (ng_component[i].Status == 0)
{
repairComplete = false;
break;
}
}
List<BarCodeCheckDto.inputItem> items = new List<BarCodeCheckDto.inputItem>();
//判斷組件是否更換
for (int i = 0; i < ng_component.Count; i++)
{
if (ng_component[i].NewPartNo!="")
{
items.Add(new BarCodeCheckDto.inputItem
{
inputType="KP",
inputData = ng_component[i].NewPartNo,
oldInputData = ng_component[i].OldPartNo
});
}
}
if (repairComplete)
{
//判断全部维修完成过站
int repairStationID = -1;
var rules = await _basApi.GetRules(model.ngInfo.Barcode.RuleStationID);
if (rules.Count > 0)
{
for (int i = 0; i < rules.Count; i++)
{
if (rules[i].RuleStatus == model.ngInfo.Barcode.RuleStatus)
{
repairStationID = rules[i].NextStationID;
break;
}
}
}
int lineID = -1;
if (model.ngInfo.Wip.LineID != null)
{
lineID = model.ngInfo.Wip.LineID.Value;
}
//准备资料
var barCode = new BarCodeCheckDto
{
wipNo = model.ngInfo.Wip.WipNO,
barcode = model.ngInfo.Barcode.BarcodeNo,
barcodeType = "S",
station = repairStationID,
line = lineID,
unitNo = model.ngInfo.Wip.UnitNO,
inputItems = items
};
try
{
var barcode_result = await _pcsApi.PassIngByCheck(JsonConvert.SerializeObject(barCode));
}
catch { }
//更新NG_INFO
//var ng_info = await _repApi.GetNgInfo((int)model.ngInfo.NgID);
//ng_info[0].Status = 1;
model.ngInfo.Status = 1;
result = await _repApi.PutNgInfo(JsonConvert.SerializeObject(model.ngInfo));
}
if (result.Success)
{
var _msg = "保存成功!";

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

@ -93,6 +93,13 @@ namespace AMESCoreStudio.Web
[WebApiClient.Attributes.HttpGet("api/NgRepairBlobs/{id}")]
ITask<List<NgRepairBlob>> GetNgRepairBlob(decimal id);
/// <summary>
/// 更新不良資料
/// </summary>
/// <returns></returns>
[WebApiClient.Attributes.HttpPut("api/NgInfo")]
ITask<ResultModel<NgInfo>> PutNgInfo([FromBody, RawJsonContent] string model);
/// <summary>
/// 新增不良維修資料
/// </summary>

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

@ -39,6 +39,99 @@
<input type="hidden" asp-for="ngRepair.ComponentID" />
<input type="hidden" asp-for="ngRepair.NgID" />
<input type="hidden" asp-for="ngInfo.NgID" />
<input type="hidden" asp-for="ngInfo.TypeNo" />
<input type="hidden" asp-for="ngInfo.OperatorID" />
<input type="hidden" asp-for="ngInfo.ProgramNo" />
<input type="hidden" asp-for="ngInfo.FixtureNo" />
<input type="hidden" asp-for="ngInfo.MachineNo" />
<input type="hidden" asp-for="ngInfo.TestQty" />
<input type="hidden" asp-for="ngInfo.NgQty" />
<input type="hidden" asp-for="ngInfo.StartTime" />
<input type="hidden" asp-for="ngInfo.EndTime" />
<input type="hidden" asp-for="ngInfo.TestStatus" />
<input type="hidden" asp-for="ngInfo.BarcodeID" />
<input type="hidden" asp-for="ngInfo.StationId" />
<input type="hidden" asp-for="ngInfo.WipId" />
<input type="hidden" asp-for="ngInfo.Status" />
<input type="hidden" asp-for="ngInfo.ReasonNo" />
<input type="hidden" asp-for="ngInfo.NextStationId" />
<input type="hidden" asp-for="ngInfo.ItemQty" />
<input type="hidden" asp-for="ngInfo.NgMemo" />
<input type="hidden" asp-for="ngInfo.CreateUserID" />
<input type="hidden" asp-for="ngInfo.CreateDate" />
<input type="hidden" asp-for="ngInfo.UpdateUserID" />
<input type="hidden" asp-for="ngInfo.UpdateDate" />
<input type="hidden" asp-for="ngInfo.Barcode.BarcodeID" />
<input type="hidden" asp-for="ngInfo.Barcode.BarcodeNo" />
<input type="hidden" asp-for="ngInfo.Barcode.BoxNo" />
<input type="hidden" asp-for="ngInfo.Barcode.CreateDate" />
<input type="hidden" asp-for="ngInfo.Barcode.CreateUserID" />
<input type="hidden" asp-for="ngInfo.Barcode.ExtraBarcodeNo" />
<input type="hidden" asp-for="ngInfo.Barcode.LocationID" />
<input type="hidden" asp-for="ngInfo.Barcode.RuleStationID" />
<input type="hidden" asp-for="ngInfo.Barcode.RuleStatus" />
<input type="hidden" asp-for="ngInfo.Barcode.StatusID" />
<input type="hidden" asp-for="ngInfo.Barcode.StatusNo" />
<input type="hidden" asp-for="ngInfo.Barcode.SysType" />
<input type="hidden" asp-for="ngInfo.Barcode.UpdateDate" />
<input type="hidden" asp-for="ngInfo.Barcode.WipID" />
<input type="hidden" asp-for="ngInfo.Station.StationID" />
<input type="hidden" asp-for="ngInfo.Station.StationName" />
<input type="hidden" asp-for="ngInfo.Station.StationNameSt" />
<input type="hidden" asp-for="ngInfo.Station.N01Goal" />
<input type="hidden" asp-for="ngInfo.Station.NewCno" />
<input type="hidden" asp-for="ngInfo.Station.PosNo" />
<input type="hidden" asp-for="ngInfo.Station.ProductGoal" />
<input type="hidden" asp-for="ngInfo.Station.SectionNo" />
<input type="hidden" asp-for="ngInfo.Station.StatusNo" />
<input type="hidden" asp-for="ngInfo.Station.SysType" />
<input type="hidden" asp-for="ngInfo.Station.TestType" />
<input type="hidden" asp-for="ngInfo.Station.TypeNo" />
<input type="hidden" asp-for="ngInfo.Station.UnitNo" />
<input type="hidden" asp-for="ngInfo.Station.WipCnt" />
<input type="hidden" asp-for="ngInfo.Station.WipCntMin" />
<input type="hidden" asp-for="ngInfo.Station.WorkTime" />
<input type="hidden" asp-for="ngInfo.Station.YieldDPPM" />
<input type="hidden" asp-for="ngInfo.Station.YieldRate" />
<input type="hidden" asp-for="ngInfo.Wip.WipID" />
<input type="hidden" asp-for="ngInfo.Wip.WipNO" />
<input type="hidden" asp-for="ngInfo.Wip.BoxCNT" />
<input type="hidden" asp-for="ngInfo.Wip.CNO" />
<input type="hidden" asp-for="ngInfo.Wip.CompleteQTY" />
<input type="hidden" asp-for="ngInfo.Wip.CreateDate" />
<input type="hidden" asp-for="ngInfo.Wip.CreateUserID" />
<input type="hidden" asp-for="ngInfo.Wip.CustomerItemNO" />
<input type="hidden" asp-for="ngInfo.Wip.CustomerNO" />
<input type="hidden" asp-for="ngInfo.Wip.CustomerType" />
<input type="hidden" asp-for="ngInfo.Wip.Description" />
<input type="hidden" asp-for="ngInfo.Wip.ECNCheck" />
<input type="hidden" asp-for="ngInfo.Wip.FlowRuleID" />
<input type="hidden" asp-for="ngInfo.Wip.InputFlag" />
<input type="hidden" asp-for="ngInfo.Wip.LineID" />
<input type="hidden" asp-for="ngInfo.Wip.ModelCheck" />
<input type="hidden" asp-for="ngInfo.Wip.OrderNO" />
<input type="hidden" asp-for="ngInfo.Wip.PlanQTY" />
<input type="hidden" asp-for="ngInfo.Wip.PrintFlag" />
<input type="hidden" asp-for="ngInfo.Wip.Priority" />
<input type="hidden" asp-for="ngInfo.Wip.ProductTypeID" />
<input type="hidden" asp-for="ngInfo.Wip.RelatedWONO" />
<input type="hidden" asp-for="ngInfo.Wip.Remarks" />
<input type="hidden" asp-for="ngInfo.Wip.Sales" />
<input type="hidden" asp-for="ngInfo.Wip.StatusNO" />
<input type="hidden" asp-for="ngInfo.Wip.UnitNO" />
<input type="hidden" asp-for="ngInfo.Wip.UpdateDate" />
<input type="hidden" asp-for="ngInfo.Wip.Werks" />
<input type="hidden" asp-for="ngInfo.Wip.WerksNO" />
<input type="hidden" asp-for="ngInfo.Wip.WipDueDate" />
<input type="hidden" asp-for="ngInfo.Wip.WipScheduleDate" />
<input type="hidden" asp-for="ngInfo.Wip.WipSEQ" />
<input type="hidden" asp-for="ngInfo.Wip.WipTimes" />
<input type="hidden" asp-for="ngInfo.Wip.WipType" />
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label" style="color:red">條碼資料</label>

Loading…
Cancel
Save