Added data pull for previous week and capability for production passdown to view previous week data, added tool state mapping json file and production passdown report shows owners, removed unnecessary jQuery package.

This commit is contained in:
Daniel Wathen
2022-12-07 10:44:11 -07:00
parent 3409ad58b7
commit 4592b035b6
16 changed files with 651 additions and 576 deletions

View File

@ -0,0 +1,254 @@
@model ReportingServices.Models.ProductionReport.YieldStatistics
@{
int totalWafersOut = 0;
int totalCustomerScrap = 0;
int totalManufacturingScrap = 0;
int totalProdScrap = 0;
int totalYieldedWafersOut = 0;
int deltaToCommit = 0;
int deltaToPlan = 0;
float totalYield = 0f;
string myClass;
int numberOfDaysInWeek = Model.OutsByDay.Count;
int yieldOutDays = Model.IsCurrentWeek ? Model.OutsByDay.Count - 1 : Model.OutsByDay.Count;
}
<table class="table table-bordered">
<thead>
<tr>
<th scope="col" rowspan="2" class="text-center align-middle">SI Operations</th>
@for (int i = 0; i < 7; i++)
{
<th scope="col" class="text-center">@Model.StartDate.AddDays(i).ToString("MM/dd/yyyy")</th>
}
<th scope="col" rowspan="2" class="text-center align-middle">Weekly Total</th>
<th scope="col" rowspan="2" class="text-center align-middle">Comment</th>
</tr>
<tr>
<th scope="col" class="text-center">Monday</th>
<th scope="col" class="text-center">Tuesday</th>
<th scope="col" class="text-center">Wednesday</th>
<th scope="col" class="text-center">Thursday</th>
<th scope="col" class="text-center">Friday</th>
<th scope="col" class="text-center">Saturday</th>
<th scope="col" class="text-center">Sunday</th>
</tr>
</thead>
<tbody>
<tr>
<td scope="row">Commited Target to meet Shipment Requirements</td>
<td class="text-center">4,500</td>
<td class="text-center">4,500</td>
<td class="text-center">4,500</td>
<td class="text-center">4,500</td>
<td class="text-center">4,500</td>
<td class="text-center">4,500</td>
<td class="text-center">4,500</td>
<td class="text-center">31,500</td>
<td>Number updated quarterly</td>
</tr>
<tr>
<td scope="row">Actual Reactor Out</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int reactorMoves = Model.OutsByDay[i].TotalWafers;
<td class="text-center">@reactorMoves</td>
totalWafersOut += reactorMoves;
}
else
{
<td></td>
}
}
<td class="text-center">@totalWafersOut</td>
<td>Before Scrap</td>
</tr>
<tr>
<td scope="row" id="expandYield">
Actual Yielded Wafers Out &nbsp;&nbsp;&nbsp;
<button class="btn btn-default" onclick="expandYield()">
<img src="~/Images/plusIcon.png" width="20" style="padding-bottom: 3px" id="yieldImage" />
</button>
</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int yieldedOuts = Model.OutsByDay[i].TotalWafers - Model.ScrapByDay[i].TOT_REJ_WFRS - Model.ScrapByDay[i].TW_PROD;
<td class="text-center">@yieldedOuts</td>
totalYieldedWafersOut += yieldedOuts;
}
else
{
<td></td>
}
}
<td class="text-center">@totalYieldedWafersOut</td>
<td>After Scrap</td>
</tr>
<tr class="yield hidden">
@{
int index = numberOfDaysInWeek - 1;
int modifiedYieldedOuts = 0;
if (Model.IsCurrentWeek)
modifiedYieldedOuts = totalYieldedWafersOut - (Model.OutsByDay[index].TotalWafers - Model.ScrapByDay[index].TOT_REJ_WFRS - Model.ScrapByDay[index].TW_PROD);
else
modifiedYieldedOuts = totalYieldedWafersOut;
}
<td scope="row" colspan="10" id="expandYield" class="text-center">Yielded Wafers Out Daily Average: @(modifiedYieldedOuts / yieldOutDays)</td>
</tr>
<tr class="yield hidden">
<td scope="row">Customer Scrap</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int custScrap = Model.ScrapByDay[i].TOT_REJ_CUST;
<td class="text-center">@custScrap</td>
totalCustomerScrap += custScrap;
}
else
{
<td></td>
}
}
<td class="text-center">@totalCustomerScrap</td>
<td></td>
</tr>
<tr class="yield hidden">
<td scope="row">Manufacturing Scrap</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int manuScrap = Model.ScrapByDay[i].TOT_REJ_MANU;
<td class="text-center">@manuScrap</td>
totalManufacturingScrap += manuScrap;
}
else
{
<td></td>
}
}
<td class="text-center">@totalManufacturingScrap</td>
<td></td>
</tr>
<tr class="yield hidden">
<td scope="row">Production Scrap</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int prodScrap = Model.ScrapByDay[i].TW_PROD;
<td class="text-center">@prodScrap</td>
totalProdScrap += prodScrap;
}
else
{
<td></td>
}
}
<td class="text-center">@totalProdScrap</td>
<td></td>
</tr>
<tr class="yield hidden">
<td scope="row">Yield</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
float yield = ((float)Model.OutsByDay[i].TotalWafers - (float)Model.ScrapByDay[i].TOT_REJ_WFRS) / (float)Model.OutsByDay[i].TotalWafers;
<td class="text-center">@(string.Format("{0:P2}", yield))</td>
totalYield += yield;
}
else
{
<td></td>
}
}
<td class="text-center">@(string.Format("{0:P2}", totalYield / numberOfDaysInWeek))</td>
<td>After Scrap</td>
</tr>
<tr>
<td scope="row">Delta to commit</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int dayDelta = Model.OutsByDay[i].TotalWafers - Model.ScrapByDay[i].TOT_REJ_WFRS - 4500;
if (dayDelta < 0)
myClass = "table-danger text-danger";
else
myClass = "";
<td class="text-center @myClass">@dayDelta</td>
deltaToCommit += dayDelta;
}
else
{
<td></td>
}
}
<td class="text-center">@deltaToCommit</td>
<td>Difference to commitment</td>
</tr>
<tr>
<td scope="row">Delta to the Plan</td>
@for (int i = 0; i < 7; i++)
{
if (i < numberOfDaysInWeek)
{
int dayDelta = Model.OutsByDay[i].TotalWafers - Model.ScrapByDay[i].TOT_REJ_WFRS - 4500;
if (dayDelta < 0)
myClass = "table-danger text-danger";
else
myClass = "";
<td class="text-center @myClass">@dayDelta</td>
deltaToPlan += dayDelta;
}
else
{
<td></td>
}
}
<td class="text-center">@deltaToPlan</td>
<td>Difference to target</td>
</tr>
<tr>
<td scope="row">Wafers Needed to make QTR</td>
<td class="text-center">3,640</td>
<td class="text-center">3,640</td>
<td class="text-center">3,640</td>
<td class="text-center">3,640</td>
<td class="text-center">3,640</td>
<td class="text-center">3,640</td>
<td class="text-center">3,640</td>
<td class="text-center">25,480</td>
<td>Number updated weekly</td>
</tr>
</tbody>
</table>