Browse Source

Yiru 修正巡檢模組、工時模組、完工入庫

PTD
BB.Wang 2 years ago
parent
commit
2df3a14d89
  1. 275
      AMESCoreStudio.Web/Controllers/PCSController.cs
  2. 32
      AMESCoreStudio.Web/Controllers/SPCController.cs
  3. 13
      AMESCoreStudio.Web/Controllers/WHSController.cs
  4. 2
      AMESCoreStudio.Web/Views/BAS/BAS013.cshtml
  5. 4
      AMESCoreStudio.Web/Views/BAS/BAS019C.cshtml
  6. 26
      AMESCoreStudio.Web/Views/SPC/SPC004.cshtml
  7. 35
      AMESCoreStudio.Web/Views/SPC/SPC005.cshtml
  8. 53
      AMESCoreStudio.Web/Views/SPC/SPC005C.cshtml
  9. 97
      AMESCoreStudio.Web/Views/SPC/SPC005U.cshtml
  10. 12
      AMESCoreStudio.Web/Views/SPC/SPC005V.cshtml
  11. 12
      AMESCoreStudio.Web/Views/WHS/WHS003.cshtml
  12. 87
      AMESCoreStudio.Web/Views/WHS/WHS003C.cshtml
  13. 7
      AMESCoreStudio.WebApi/Controllers/AMES/InspectionResultMastersController.cs
  14. 2
      AMESCoreStudio.WebApi/Models/AMES/InspectionForm.cs
  15. 6
      AMESCoreStudio.WebApi/Models/AMES/InspectionResultMaster.cs
  16. 2
      AMESCoreStudio.WebApi/Models/BAS/RuninTime.cs

275
AMESCoreStudio.Web/Controllers/PCSController.cs

@ -7315,174 +7315,215 @@ namespace AMESCoreStudio.Web.Controllers
* 3. =>
* 4. = >
*/
var result = await _fqcApi.GetBarcodeInfoesByBoxNo(boxNo: boxNo);
var result = await _fqcApi.GetBarcodeInfoesByBoxNo(boxNo: boxNo);
if (result.Count() != 0)
{
var _msg = string.Empty;
if (recordNumber == null) _msg = "請輸入入庫箱號";
if (AppSetting.Setting.Location == "9000" || AppSetting.Setting.Location == "0S08")
{
if (recordNumber.Length != 10 || !recordNumber.StartsWith("50000"))
{
_msg = "箱號:" + boxNo + " recordNumber 必須為10碼且為50000開頭,RecordNumber format error<br>";
}
}
foreach (var item in result)
try
{
var FlowStation_result = await _basApi.GetRuleStation(item.StationID);
if (FlowStation_result.Count() != 0)
if (recordNumber == null) _msg = "請輸入recordNumber";
if (AppSetting.Setting.Location == "9000" || AppSetting.Setting.Location == "0S08")
{
var FlowRule_result = await _basApi.GetRuleStationsByFlow(FlowStation_result.Select(s => s.FlowRuleID).First());
if (FlowRule_result.Count() != 0)
if (recordNumber.Length != 10 || !recordNumber.StartsWith("50000"))
{
var LastStationID = FlowRule_result.Where(w => w.StationID != 1000).OrderBy(o => o.Sequence).Select(s => s.StationID).Last();
_msg = "箱號:" + boxNo + " recordNumber 必須為10碼且為50000開頭,RecordNumber format error<br>";
if (item.StationID != LastStationID || item.RuleStatus != "P" || item.StatusID != -1)
{
_msg += "序號【" + item.BarcodeNo + "】,流程尚未完成,不可入庫!<br>";
}
}
else
}
foreach (var item in result)
{
//因已到入庫階段有帶出箱號才會進到此判斷,因此判斷流程是否流結束改如下條件
if (item.RuleStatus != "P" || item.StatusID != -1)
{
_msg = "查無序號" + item.BarcodeNo + "目前流程(flowID)";
_msg += "序號" + item.BarcodeNo + "】,流程尚未完成,不可入庫!<br>";
}
}
else
{
_msg = "查無序號" + item.BarcodeNo + "目前流程(rule_station_ID)";
//var FlowStation_result = await _basApi.GetRuleStation(item.StationID);
//if (FlowStation_result.Count() != 0)
//{
// var FlowRule_result = await _basApi.GetRuleStationsByFlow(FlowStation_result.Select(s => s.FlowRuleID).First());
// if (FlowRule_result.Count() != 0)
// {
// var LastStationID = FlowRule_result.Where(w => w.StationID != 1000).OrderBy(o => o.Sequence).Select(s => s.StationID).Last();
// if (item.StationID != LastStationID || item.RuleStatus != "P" || item.StatusID != -1)
// {
// _msg += "序號【" + item.BarcodeNo + "】,流程尚未完成,不可入庫!<br>";
// }
// }
// else
// {
// _msg = "查無序號" + item.BarcodeNo + "目前流程(flowID)";
// }
//}
//else
//{
// _msg = "查無序號" + item.BarcodeNo + "目前流程(rule_station_ID)";
//}
}
}
if (_msg == string.Empty)
{
var FlowRules_result = await _basApi.GetFlowRulesByUnit("W");
if (FlowRules_result.Count() != 0)
if (_msg == string.Empty)
{
var FlowRuleID = FlowRules_result.Select(s => s.FlowRuleID).First();
var ruleStations_result = await GetRuleStationByFlowRuleID(FlowRuleID);
var StationID = ruleStations_result.Select(s => s.StationID).First();
var FlowRules_result = await _basApi.GetFlowRulesByUnit("W");
if (FlowRules_result.Count() != 0)
{
var FlowRuleID = FlowRules_result.Select(s => s.FlowRuleID).First();
var ruleStations_result = await GetRuleStationByFlowRuleID(FlowRuleID);
if (ruleStations_result.Count() != 0)
{
var StationID = ruleStations_result.Select(s => s.StationID).First();
var Wipinfo_result = await _pcsApi.GetWipInfo(result.Select(s => s.WipID).First());
var Wipinfo_LineID = Wipinfo_result.Select(s => s.LineID).First(); //lineid
var WipAtt_result = await _pcsApi.GetWipAtt(Wipinfo_result.Select(s => s.WipNO).First()); //料號
var Userinfo_result = await _sysApi.GetUserInfo(GetLogInUserID());
var Wipinfo_result = await _pcsApi.GetWipInfo(result.Select(s => s.WipID).First());
var Wipinfo_LineID = Wipinfo_result.Select(s => s.LineID).First(); //lineid
var WipAtt_result = await _pcsApi.GetWipAtt(Wipinfo_result.Select(s => s.WipNO).First()); //料號
var Userinfo_result = await _sysApi.GetUserInfo(GetLogInUserID());
List<PTD101AMESModel> PTD101AMESModels = new List<PTD101AMESModel>();
foreach (var item in result)
{
BarcodeInfo barcodeInfo = new BarcodeInfo
{
BarcodeID = item.BarcodeID,
BarcodeNo = item.BarcodeNo,
StatusNo = item.StatusNo,
StationID = StationID,
RuleStatus = "P",//F 不良
BoxNo = item.BoxNo,
WipID = item.WipID,
StatusID = -1,
CreateUserID = item.CreateUserID,
CreateDate = item.CreateDate,
UpdateDate = System.DateTime.Now
List<PTD101AMESModel> PTD101AMESModels = new List<PTD101AMESModel>();
foreach (var item in result)
{
BarcodeInfo barcodeInfo = new BarcodeInfo
{
BarcodeID = item.BarcodeID,
BarcodeNo = item.BarcodeNo,
StatusNo = item.StatusNo,
StationID = StationID,
RuleStatus = "P",//F 不良
BoxNo = item.BoxNo,
WipID = item.WipID,
StatusID = -1,
CreateUserID = item.CreateUserID,
CreateDate = item.CreateDate,
UpdateDate = System.DateTime.Now
};
var resultPutBInfo = await _pcsApi.PutBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo));
if (!resultPutBInfo.Success)
{
_msg = resultPutBInfo.Msg;
return new Result() { success = false, msg = _msg };
}
};
var barcodeStations = new BarcodeStation
{
BarcodeID = item.BarcodeID,
WipID = item.WipID,
StationID = StationID,
FlowRuleID = FlowRuleID,
RuleStatus = "P",
InputDate = DateTime.Now,
LineId = (int)Wipinfo_LineID,
CreateUserID = item.CreateUserID,
GetRuleStation = new RuleStation
{
//RuleStationID = RuleStationID,
//FlowRuleID = "",
//StationID ="",
//StationDescl
//Sequence="",
//StationType = "",
//CreateUserId =item.CreateUserID,
//CreateDate = DateTime.Now,
//UpdateDate = DateTime.Now
}
};
var resultPoutBStation = await _pcsApi.PostBarcodeStation(JsonConvert.SerializeObject(barcodeStations));
if (!resultPoutBStation.Success)
{
_msg = resultPoutBStation.Msg;
return new Result() { success = false, msg = _msg };
}
await _pcsApi.PutBarcodeInfoes(JsonConvert.SerializeObject(barcodeInfo));
var barcodeStations = new BarcodeStation
{
BarcodeID = item.BarcodeID,
WipID = item.WipID,
StationID = StationID,
FlowRuleID = FlowRuleID,
RuleStatus = "P",
InputDate = DateTime.Now,
LineId = (int)Wipinfo_LineID,
CreateUserID = item.CreateUserID,
GetRuleStation = new RuleStation
{
//RuleStationID = RuleStationID,
//FlowRuleID = "",
//StationID ="",
//StationDescl
//Sequence="",
//StationType = "",
//CreateUserId =item.CreateUserID,
//CreateDate = DateTime.Now,
//UpdateDate = DateTime.Now
PTD101AMESModels.Add(new PTD101AMESModel
{
FQCID = InhouseNo,
SSN = item.ExtraBarcodeNo,
ISN = item.BarcodeNo,
RecordNumber = recordNumber,
PN = WipAtt_result.ItemNO,
EmpID = Userinfo_result.Select(s => s.UserNo).FirstOrDefault(),
Location = AppSetting.Setting.Location
}
};
await _pcsApi.PostBarcodeStation(JsonConvert.SerializeObject(barcodeStations));
});
}
PTD101AMESModels.Add(new PTD101AMESModel
{
FQCID = InhouseNo,
SSN = item.ExtraBarcodeNo,
ISN = item.BarcodeNo,
RecordNumber = recordNumber,
PN = WipAtt_result.ItemNO,
EmpID = Userinfo_result.Select(s => s.UserNo).FirstOrDefault(),
Location = AppSetting.Setting.Location
var Warehouseing = new WareHouseing
{
InhouseNo = InhouseNo,
SeqID = seq,
SerialNo = boxNo,
Serial_Type = "B",
RecordNumber = recordNumber,
Create_UserID = Userinfo_result.Select(s => s.UserID).FirstOrDefault(),
Create_Date = DateTime.Now
};
var resultPostWH = await _pcsApi.PostWareHouseing(JsonConvert.SerializeObject(Warehouseing));
if (!resultPostWH.Success)
{
_msg = resultPostWH.Msg;
return new Result() { success = false, msg = _msg };
}
});
var resultPTD101AMES = await _pcsApi.PostPTD101AMES(JsonConvert.SerializeObject(PTD101AMESModels));
}
}
else
{
_msg = "入庫代碼(W)查無設定站別";
}
var Warehouseing = new WareHouseing
}
else
{
InhouseNo = InhouseNo,
SeqID = seq,
SerialNo = boxNo,
Serial_Type = "B",
RecordNumber = recordNumber,
Create_UserID = Userinfo_result.Select(s => s.UserID).FirstOrDefault(),
Create_Date = DateTime.Now
};
await _pcsApi.PostWareHouseing(JsonConvert.SerializeObject(Warehouseing));
// await _pcsApi.PostPTD101AMES(JsonConvert.SerializeObject(PTD101AMESModels));
_msg = "查無入庫代碼(W)";
}
if (_msg == string.Empty)
{
//執行入庫作業
return new Result() { success = true, msg = "入庫完成" };
}
else
{
return new Result() { success = false, msg = _msg };
}
}
else
{
_msg = "查無入庫代碼(W)";
return new Result() { success = false, msg = _msg };
}
//執行入庫作業
return new Result() { success = true, msg = "入庫完成" };
}
else
catch (Exception ex)
{
_msg = ex.ToString();
return new Result() { success = false, msg = _msg };
}
}
else
{
return new Result() { success = false, msg = "NO SN DATA" };
}
}

32
AMESCoreStudio.Web/Controllers/SPCController.cs

@ -729,7 +729,7 @@ namespace AMESCoreStudio.Web.Controllers
[ResponseCache(Duration = 0)]
[HttpGet]
public async Task<IActionResult> GetInspectionResultMastersByQueryAsync(string WipNo, string ItemNo, string BarcodeNo)
public async Task<IActionResult> GetInspectionResultMastersByQueryAsync(string WipNo, string ItemNo, string BarcodeNo,string Status_No)
{
@ -739,7 +739,8 @@ namespace AMESCoreStudio.Web.Controllers
ItemNo = " ";
if (string.IsNullOrWhiteSpace(BarcodeNo))
BarcodeNo = " ";
// if (string.IsNullOrWhiteSpace(Status_No))
// Status_No = " ";
var result = await _spcApi.GetInspectionResultMastersByQuery(WipNo, ItemNo, BarcodeNo, "C");
@ -751,7 +752,7 @@ namespace AMESCoreStudio.Web.Controllers
return Json(new Table() { count = 0, data = null });
}
public async Task<IActionResult> GetInspectionResultDetailQueryAsync(int id ,string Line,string RuleStation)
public async Task<IActionResult> GetInspectionResultDetailQueryAsync(int id ,string Line,string RuleStation,string InspectionResult)
{
var result = await _spcApi.GetInspectionResultDetailQuery(id);
@ -760,6 +761,8 @@ namespace AMESCoreStudio.Web.Controllers
result = result.Where(w => w.Line == Line).ToList();
if (RuleStation != "0")
result = result.Where(w => w.RuleStation == RuleStation).ToList();
if (InspectionResult != "0")
result = result.Where(w => w.InspectionResult == InspectionResult).ToList();
if (result.Count > 0)
{
@ -1138,6 +1141,29 @@ namespace AMESCoreStudio.Web.Controllers
return Json(new Table() { count = 0, data = null });
}
public async Task<IActionResult> GetInspectionResultDetailsAndBolbAsync(int id)
{
var result = await _spcApi.GetInspectionResultDetails(id);
if (result.Count > 0)
{
foreach (var item in result)
{
var Bolbresult= await _spcApi.GetInspectionResultBlobsByQuery(item.InspectionID, item.InspectionItemID);
item.RuleStationID = Bolbresult.Count();
}
return Json(new Table() { code = 0, msg = "", data = result, count = result.Count });
}
return Json(new Table() { count = 0, data = null });
}
public async Task<IActionResult> GetWipAttAsync(string id)
{

13
AMESCoreStudio.Web/Controllers/WHSController.cs

@ -495,14 +495,15 @@ namespace AMESCoreStudio.Web.Controllers
return View();
}
//新增頁面
public async Task<IActionResult> WHS003C(string unit,string lineID)
public async Task<IActionResult> WHS003C()
{
await GetStationListByUnit(unit);
var result = await _basApi.GetFactoryUnit(unit);
// await GetStationListByUnit(unit);
await GetFactoryUnitsList();
// var result = await _basApi.GetFactoryUnit(unit);
//await GetMFGType();
ViewBag.LineID = lineID;
ViewBag.UnitNo = unit;
ViewBag.FactoryU = result[0].UnitName;
// ViewBag.LineID = lineID;
// ViewBag.UnitNo = unit;
// ViewBag.FactoryU = result[0].UnitName;
GetSideList();
return View();
}

2
AMESCoreStudio.Web/Views/BAS/BAS013.cshtml

@ -62,7 +62,7 @@
},
{
field: 'time',
title: '燒機時間'
title: '燒機時間(小時)'
},
{
field: 'runinSoftware',

4
AMESCoreStudio.Web/Views/BAS/BAS019C.cshtml

@ -43,6 +43,10 @@
<label class="control-label col-sm-9">:3碼流水號 </label>
<label class="control-label col-sm-3">[SN4]</label>
<label class="control-label col-sm-9">:4碼流水號 </label>
<label class="control-label col-sm-3">[SN5]</label>
<label class="control-label col-sm-9">:5碼流水號 </label>
<label class="control-label col-sm-3">[SN6]</label>
<label class="control-label col-sm-9">:6碼流水號 </label>
<label class="control-label col-sm-3">[LOT3]</label>
<label class="control-label col-sm-9">:3碼生產批號 </label>
<label class="control-label col-sm-3">[LOT4]</label>

26
AMESCoreStudio.Web/Views/SPC/SPC004.cshtml

@ -26,14 +26,16 @@
<input id="ItemNo" style="width: 250px;" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">生產序號:</label>
<input id="BarcodeNo" style="width: 250px;" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">線別:</label>
@ -43,8 +45,6 @@
</div>
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<div class="layui-inline">
<label class="layui-form-label">作業站:</label>
@ -55,6 +55,19 @@
</div>
</div>
<div class="layui-inline" style="margin-right:0px;">
<label class="layui-form-label">稽核結果:</label>
<div class="layui-input-inline" width:400px;">
<select id="InspectionResult" class="custom-select col-sm-9" lay-filter="InspectionResult">
<option value="0">請選擇</option>
<option value="NA">N/A</option>
<option value="P">PASS</option>
<option value="F">FAIL </option>
</select>
</div>
</div>
<div class="layui-inline" style="margin-left: 0px;">
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit">
@ -66,7 +79,7 @@
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
</div>
</div>
@section Scripts{
<script type="text/javascript">
@ -205,9 +218,10 @@
function tt(id) {
Line = $("#Line").val();
RuleStation = $("#RuleStation").val();
InspectionResult = $("#InspectionResult").val();
//基本数据表格
//console.log('id:' + id);
table = hg.table.datatable('test', '巡檢表單回覆維護', '/SPC/GetInspectionResultDetailQuery?id=' + id + "&Line=" + Line + "&RuleStation=" + RuleStation
table = hg.table.datatable('test', '巡檢表單回覆維護', '/SPC/GetInspectionResultDetailQuery?id=' + id + "&Line=" + Line + "&RuleStation=" + RuleStation + '&InspectionResult=' + InspectionResult
, {}, tableCols, toolbar, true, 'full-100', ['filter', 'print', 'exports']);
};
</script>

35
AMESCoreStudio.Web/Views/SPC/SPC005.cshtml

@ -41,8 +41,7 @@
<input id="WipNo" style="width: 250px;" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-inline">
<label class="layui-form-label">料號:</label>
@ -51,27 +50,25 @@
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-inline">
<label class="layui-form-label">生產序號:</label>
<input id="BarcodeNo" style="width: 250px;" class="layui-input">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-col-sm10">
<div class="layui-inline">
<label class="layui-form-label">日期:</label>
<div class="layui-input-inline">
<input id="dateStr" name="dateStr" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid">~</div>
<div class="layui-input-inline">
<input id="dateEnd" name="dateEnd" autocomplete="off" class="layui-input" >
</div>
<div class="layui-inline">
<label class="layui-form-label">日期:</label>
<div class="layui-input-inline">
<input id="dateStr" name="dateStr" autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid">~</div>
<div class="layui-input-inline">
<input id="dateEnd" name="dateEnd" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-col-sm2">
<div class="layui-inline">
<div class="layui-inline" style="margin-left: 0px;">
<div class="layui-inline layui-show-xs-block">
<button class="layui-btn layui-btn-sm layui-btn-normal" id="querysubmit" lay-filter="querysubmit">
@ -224,6 +221,10 @@
field: 'itemNo',
title: '料號'
},
{
field: 'statusNo',
title: '狀態'
},
{
field: 'createDate',
title: '建立日期',
@ -236,9 +237,9 @@
templet: function (item) {
var btns = '';
//btns = btns + '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
if (item.statusNo == "T")
if (item.statusNo == "暫存")
btns = btns + '<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
else if (item.statusNo == "C")
else if (item.statusNo == "保存")
btns = btns + '<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">檢視</a>';
return btns;

53
AMESCoreStudio.Web/Views/SPC/SPC005C.cshtml

@ -54,11 +54,13 @@
<input id="ItemNo" asp-for="ItemNo" class="layui-input">
<span asp-validation-for="ItemNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="layui-input-inline">
<label asp-for="BarcodeNo" class="control-label col-sm-2"></label>
<input id="BarcodeNo" asp-for="BarcodeNo" class="layui-input" onkeydown="input(event);">
<input id="BarcodeNo" asp-for="BarcodeNo" class="layui-input" onkeydown="input(event);">
<span asp-validation-for="BarcodeNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="layui-input-inline" style="width:25%;">
<label class="control-label col-sm-2">PLMENC</label>
<div>
@ -72,8 +74,9 @@
<a class="sms" href="#" target="_blank"> <i class="layui-icon layui-icon-template"></i><cite>SMS異常紀錄</cite></a>
<a class="qazone" href="#" target="_blank"> <i class="layui-icon layui-icon-template"></i><cite>QAZone異常紀錄</cite></a>
</div>
<input type="hidden" asp-for="StatusNo" value="T" />
</div>
<input type="hidden" asp-for="StatusNo" value="T" />
</div>
</div>
<div class="layui-inline">
@ -128,23 +131,21 @@
</select>
</script>
@*缺失人員*@
<script type="text/html" id="selectUser">
<select name='station' lay-verify='' lay-search='' asp-items="@ViewBag.UserList" class="layui-form" lay-filter="UserList">
</select>
</script>
<script type="text/html" id="selectUser">
<select name='station' lay-verify='' lay-search='' asp-items="@ViewBag.UserList" class="layui-form" lay-filter="UserList">
</select>
</script>
@* <script type="text/html" id="selectUser">
<input type="text" class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;" lay-vertype="tips" name="selectUser" value="" lay-event="inputTest" lay-filter="inputTest">
</script>*@
<script type="text/javascript">
////保存
$('#querysubmit').click(function () {
var WipNo = $("#WipNo").val();
var ItemNo = $("#ItemNo").val();
var BarcodeNo = $("#BarcodeNo").val();
if (!WipNo) {
return false;
}
else if (!ItemNo) {
return false;
}
else if (!BarcodeNo) {
if (!WipNo && !ItemNo && !BarcodeNo ) {
return false;
}
else
@ -155,13 +156,7 @@
var WipNo = $("#WipNo").val();
var ItemNo = $("#ItemNo").val();
var BarcodeNo = $("#BarcodeNo").val();
if (!WipNo) {
return false;
}
else if (!ItemNo) {
return false;
}
else if (!BarcodeNo) {
if (!WipNo && !ItemNo && !BarcodeNo) {
return false;
}
else
@ -414,7 +409,7 @@
function WipNOinput(e) {
if (e.keyCode == 13) {
$('#BarcodeNo').val("");
var data = $("#WipNo").val();
if (data) {
console.log("data=" + data);
@ -430,9 +425,10 @@
$("#ItemNo").val(result.data.itemNO);
$("#ModelNo").val(result.data.modelNO);
//BarcodeNo
$('#BarcodeNo').focus();
event.preventDefault();
return false;
}
else {
@ -457,16 +453,11 @@
}
}
function input(e) {
if (e.keyCode == 13 ) {
var data = $("#WipNo").val();
if (!data) {
alert("請填寫工單!");
$('#WipNo').focus();
return false;
}
else {
if (data) {
var Barcode = $("#BarcodeNo").val();
CheckBarcodeNo(Barcode, data);
event.preventDefault();
@ -475,7 +466,7 @@
}
};
layui.use(['form', 'layer', 'table', 'laytpl', 'laydate'], function () {
var layer = layui.layer,
@ -592,7 +583,7 @@
});
function CheckBarcodeNo(BarcodeNo, WipNo) {
$.ajax({

97
AMESCoreStudio.Web/Views/SPC/SPC005U.cshtml

@ -47,6 +47,8 @@
<label asp-for="BarcodeNo" class="control-label col-sm-2"></label>
<input id="BarcodeNo" asp-for="BarcodeNo" class="layui-input" readonly>
</div>
<div class="layui-input-inline" style="width:25%;">
<label class="control-label col-sm-2">PLMENC</label>
<div>
@ -61,6 +63,8 @@
<a class="qazone" href="#" target="_blank"> <i class="layui-icon layui-icon-template"></i><cite>QAZone異常紀錄</cite></a>
</div>
</div>
</div>
</div>
<div class="layui-inline">
@ -93,7 +97,7 @@
</script>
@*備註*@
<script type="text/html" id="inputTest">
<input type="text" name="inputTest" lay-filter="inputTest" id="inputTest" data-value={{d.missingRemark}} class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;" >
<input type="text" name="inputTest" lay-filter="inputTest" id="inputTest" data-value={{d.missingRemark}} class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;">
</script>
@*線別*@
<script type="text/html" id="selectLine">
@ -102,22 +106,30 @@
</script>
@*站別*@
<script type="text/html" id="selectStation">
<select name="selectStation" lay-filter="selectStation" id="selectStation" data-value={{d.ruleStationID}} asp-items="@ViewBag.StationList" class="layui-form" >
<select name="selectStation" lay-filter="selectStation" id="selectStation" data-value={{d.ruleStationID}} asp-items="@ViewBag.StationList" class="layui-form">
</select>
</script>
@*插件位置*@
<script type="text/html" id="inputLocation">
<input type="text" name="inputLocation" lay-filter="inputLocation" id="inputLocation" data-value={{d.location}} class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;" >
<input type="text" name="inputLocation" lay-filter="inputLocation" id="inputLocation" data-value={{d.location}} class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;">
</script>
@*缺失單位*@
<script type="text/html" id="selectDept">
<select name="selectDept" lay-filter="selectDept" id="selectDept" data-value={{d.missingUnitNo}} asp-items="@ViewBag.FactoryUnit" class="layui-form">
<select name="selectDept" lay-filter="selectDept" id="selectDept" data-value={{d.missingUnitNo}} asp-items="@ViewBag.FactoryUnit" class="layui-form">
</select>
</script>
@*缺失人員*@
@* <script type="text/html" id="selectUser">
<select name="selectUser" lay-filter="selectUser" id="selectUser" data-value={{d.missingUserID}} lay-search='' asp-items="@ViewBag.UserList" class="layui-form">
</select>
</script>
<script type="text/html" id="selectUser">
<input type="text" name="selectUser" lay-filter="selectUser" id="selectUser" data-value={{d.missingUserID}} class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;">
</script>
*@
<script type="text/html" id="selectUser">
<select name="selectUser" lay-filter="selectUser" id="selectUser" data-value={{d.missingUserID}} lay-search='' asp-items="@ViewBag.UserList" class="layui-form">
</select>
<input type="text" name="selectUser" lay-filter="selectUser" id="selectUser" data-value={{d.missingUserID}} class="layui-input" style=" margin-top: -10px; margin-left: -10px; margin-right: -10px;">
</script>
<script type="text/javascript">
////保存
@ -125,13 +137,7 @@
var WipNo = $("#WipNo").val();
var ItemNo = $("#ItemNo").val();
var BarcodeNo = $("#BarcodeNo").val();
if (!WipNo) {
return false;
}
else if (!ItemNo) {
return false;
}
else if (!BarcodeNo) {
if (!WipNo && !ItemNo && !BarcodeNo) {
return false;
}
else
@ -143,13 +149,7 @@
var ItemNo = $("#ItemNo").val();
var BarcodeNo = $("#BarcodeNo").val();
if (!WipNo) {
return false;
}
else if (!ItemNo) {
return false;
}
else if (!BarcodeNo) {
if (!WipNo && !ItemNo && !BarcodeNo) {
return false;
}
else
@ -306,7 +306,9 @@
var formID = $("#InspectionID").val();
table.render({
elem: '#test',
url: '/SPC/GetInspectionResultDetails?id=' + formID,
// url: '/SPC/GetInspectionResultDetails?id=' + formID,
url: '/SPC/GetInspectionResultDetailsAndBolb?id=' + formID,
id: 'test',
toolbar: '#toolBar',
height: 720,
@ -334,17 +336,24 @@
{ field: 'result', title: '稽核結果', width: 100, align: "left", templet: '#selectResult' },
{ field: 'lineID', title: '線別', width: 100, align: "left", templet: '#selectLine' },
{ field: 'ruleStationID', title: '站別', width: 100, align: "left", templet: '#selectStation' },
{ field: 'location', title: '件位置', width: 100, align: "left", templet: '#inputLocation' },
{ field: 'location', title: '件位置', width: 100, align: "left", templet: '#inputLocation' },
{ field: 'missingUnitNo', title: '缺失單位', width: 100, align: "left", templet: '#selectDept' },
{ field: 'missingUserID', title: '缺失人員', width: 100, align: "left", templet: '#selectUser' },
{ field: 'missingRemark', title: '備註', width: 250, align: "left", templet: '#inputTest' },//templet: '#inputTest'
{
field: 'right',
width: 100,
width: 120,
title: '操作',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">上傳圖片</a> '
var btn = '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">上傳圖片</a> ';
if (d.ruleStationID > 0)
btn = btn + '<i class="layui-icon" style="font-size: 20px;">&#xe66e;</i> ' ;
return btn;
}
}
]],
@ -480,29 +489,31 @@
if ($("#ModelNo").val() == "") {
var data = $("#WipNo").val();
$.ajax({
url: "/SPC/GetWipAtt",
dataType: 'json',
data: { id: data },
async: false,
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
$("#ModelNo").val(result.data.modelNO);
}
else {
if (data) {
$.ajax({
url: "/SPC/GetWipAtt",
dataType: 'json',
data: { id: data },
async: false,
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
$("#ModelNo").val(result.data.modelNO);
}
else {
alert("查無資料,請確認工單是否正確!");
$("#WipNo").val("");
return false;
}
},
error: function () {
alert("查無資料,請確認工單是否正確!");
$("#WipNo").val("");
return false;
}
},
error: function () {
alert("查無資料,請確認工單是否正確!");
$("#WipNo").val("");
return false;
}
});
});
}
};
});
</script>

12
AMESCoreStudio.Web/Views/SPC/SPC005V.cshtml

@ -101,7 +101,7 @@
var formID = $("#InspectionID").val();
table.render({
elem: '#test',
url: '/SPC/GetInspectionResultDetails?id=' + formID,
url: '/SPC/GetInspectionResultDetailsandBolb?id=' + formID,
id: 'test',
toolbar: '#toolBar',
//height:720,
@ -136,11 +136,17 @@
{ field: 'missingRemark', title: '備註', width: 250, align: "left"},//templet: '#inputTest'
{
field: 'right',
width: 100,
width: 120,
title: '操作',
fixed: 'right',
templet: function (d) {
return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">檢視文件</a> '
// return '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">檢視文件</a> '
var btn = '<a class="layui-btn layui-btn-normal layui-btn-xs layui-icon layui-icon-edit" lay-event="edit">檢視文件</a> ';
if (d.ruleStationID > 0)
btn = btn + '<i class="layui-icon" style="font-size: 20px;">&#xe66e;</i> ';
return btn;
}
}
]],

12
AMESCoreStudio.Web/Views/WHS/WHS003.cshtml

@ -204,13 +204,13 @@
hg.msghide("刷新数据!");
tt();
});
//新增
$('#btnAdd').click(function () {
//此段取消
$('#btnAdd1').click(function () {
var unit = $("#unitNo").val();
var lineID = $('#lineID').val();
if (unit != 0) {
if (lineID != -99) {
hg.open('新增標準工時', '/WHS/WHS003C?unit=' + unit + "&lineID=" + lineID, 480, 480);
hg.open('新增標準工時', '/WHS/WHS003C', 480, 480);
}
else {
alert("請選擇線別!!");
@ -223,6 +223,12 @@
});
$('#btnAdd').click(function () {
hg.open('新增標準工時', '/WHS/WHS003C', 480, 480);
});
var table;
$(function () {
tt();

87
AMESCoreStudio.Web/Views/WHS/WHS003C.cshtml

@ -16,8 +16,6 @@
<form enctype="multipart/form-data" method="post" asp-action="WHS003CSave">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input type="hidden" asp-for="StandardID" value="0" />
<input type="hidden" asp-for="LineID" value="@ViewBag.LineID" />
<input type="hidden" asp-for="UnitNo" value="@ViewBag.UnitNo" />
<input type="hidden" asp-for="CreateUserID" value="0" />
<input type="hidden" asp-for="UpdateUserID" value="0" />
<input type="hidden" asp-for="CreateDate" value="@System.DateTime.Now" />
@ -29,12 +27,25 @@
<span asp-validation-for="ItemNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label class="control-label col-sm-3">製程單位</label>
<input class="form-control col-sm-9" value="@ViewBag.FactoryU" readonly />
<label asp-for="UnitNo" class="control-label col-sm-3"></label>
<select id="UnitNo" asp-for="UnitNo" asp-items="@ViewBag.FactoryUnit" class="custom-select col-sm-5">
<option value="">請選擇</option>
</select>
<span asp-validation-for="UnitNo" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="LineID" class="control-label col-sm-3"></label>
<select id="LineID" asp-for="LineID" asp-items="@ViewBag.LineList" class="custom-select col-sm-9">
<option value="">請選擇</option>
</select>
<span asp-validation-for="LineID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
<label asp-for="StationID" class="control-label col-sm-3"></label>
<select asp-for="StationID" asp-items="@ViewBag.StationList" class="custom-select col-sm-9"></select>
<select id="StationID" asp-for="StationID" asp-items="@ViewBag.StationList" class="custom-select col-sm-9">
<option value="">請選擇</option>
<option value="-1">N/A</option>
</select>
<span asp-validation-for="StationID" class="text-danger offset-sm-3 my-sm-1"></span>
</div>
<div class="form-group form-inline my-sm-1">
@ -87,6 +98,72 @@
parent.hg.msg(error);
}
});
$("#UnitNo").change(function () {
var data = $("#UnitNo").val();
getLineInfoes(data);
getStations(data);
});
function getLineInfoes(data) {
$.ajax({
url: "/BAS/GetLineInfoByUnit",
dataType: 'json',
data: { id: data },
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
$("#LineID").empty();//清空下拉框的值
$('#LineID').append(new Option("全部", "-99"));// 下拉選單裡新增元素
$.each(result.data, function (index, item) {
$('#LineID').append(new Option(item.lineDesc, item.lineID));// 下拉選單裡新增元素
});
}
else {
$("#LineID").empty();//清空下拉框的值
$('#LineID').append(new Option("無選項", "-99"));// 下拉選單裡新增元素
}
layui.form.render("select");//重新渲染 固定寫法
}
});
};
function getStations(data) {
$.ajax({
url: "/BAS/GetStationses",
dataType: 'json',
contentType: "application/json",
type: 'get',
success: function (result) {
if (result.data) {
$("#StationID").empty();
$('#StationID').append(new Option("請選擇", ""));
$('#StationID').append(new Option("N/A", "-1"));
var count = 0;
$.each(result.data, function (index, item) {
if (item.unitNo == data) {
$('#StationID').append(new Option(item.stationName, item.stationID));
count = count + 1;
}
});
if (count == 0) {
$("#StationID").empty();
$('#StationID').append(new Option("無選項", ""));
}
}
else {
$("#StationID").empty();
$('#StationID').append(new Option("無選項", ""));
}
layui.form.render("select");
}
});
};
</script>

7
AMESCoreStudio.WebApi/Controllers/AMES/InspectionResultMastersController.cs

@ -192,7 +192,12 @@ namespace AMESCoreStudio.WebApi.Controllers.AMES
}
result.Data = await q.ToListAsync();
result.Data = result.Data.Select(s =>
{
s.StatusNo = s.StatusNo == "C" ? "保存" : "暫存";
return s;
}).ToList();
if (result == null)
{

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

@ -34,7 +34,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
/// </summary>
[Column("INSPECTION_NAME")]
[StringLength(10)]
[StringLength(100)]
[Display(Name = "巡檢表單名稱")]
[DataMember]
[Required(ErrorMessage = "{0},不能空白")]

6
AMESCoreStudio.WebApi/Models/AMES/InspectionResultMaster.cs

@ -35,7 +35,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(30)]
[Display(Name = "生產序號")]
[DataMember]
[Required(ErrorMessage = "{0},不能空白")]
// [Required(ErrorMessage = "{0},不能空白")] YIRU modify 改為可以空白 系統自行卡關 工單號與生產序號可二擇一輸入
public string BarcodeNo { get; set; }
/// <summary>
@ -45,7 +45,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(30)]
[Display(Name = "工單號碼")]
[DataMember]
[Required(ErrorMessage = "{0},不能空白")]
//[Required(ErrorMessage = "{0},不能空白")] YIRU modify 改為可以空白 系統自行卡關 工單號與生產序號可二擇一輸入
public string WipNo { get; set; }
/// <summary>
@ -55,7 +55,7 @@ namespace AMESCoreStudio.WebApi.Models.AMES
[StringLength(20)]
[Display(Name = "料號")]
[DataMember]
[Required(ErrorMessage = "{0},不能空白")]
// [Required(ErrorMessage = "{0},不能空白")]
public string ItemNo { get; set; }
/// <summary>

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

@ -57,7 +57,7 @@ namespace AMESCoreStudio.WebApi.Models.BAS
[Column("RUNIN_TIME")]
[DataMember]
[Required(ErrorMessage = "{0},不能空白")]
[Display(Name = "燒機時間")]
[Display(Name = "燒機時間(小時)")]
public int Time { get; set; }
/// <summary>

Loading…
Cancel
Save