Changed to use both wm in and out

This commit is contained in:
Mike Phares 2023-04-24 12:31:45 -07:00
parent c82a8790e7
commit 9774b0cc53
5 changed files with 61 additions and 65 deletions

View File

@ -27,32 +27,38 @@ public class WorkMaterialRepository : IWorkMaterialRepository
{
StringBuilder result = new();
_ = result.Append("select ( ").
Append(" select wm_b.slot_no, ").
Append(" wm_b.rds_no, ").
Append(" select wi.rds_no, ").
Append(" rr.reactor, ").
Append(" wm_b.pocket_no, ").
Append(" wm_b.zone, ").
Append(" wi.pocket_no, ").
Append(" wi.zone, ").
Append(" wi.in_cass_no, ").
Append(" wi.slot_no [in_slot_no], ").
Append(" isnull(wo.out_cass_no, -1) [out_cass_no], ").
Append(" isnull(wo.slot_no, -1) [out_slot_no], ").
Append(" rr.ps_no, ").
Append(" rr.recipe_name, ").
Append(" rr.recipe_no, ").
Append(" rr.spec_type ").
Append(" from lsl2sql.dbo.wm_in_slot_no wm_b ").
Append(" from lsl2sql.dbo.wm_in_slot_no wi ").
Append(" inner join lsl2sql.dbo.react_run rr ").
Append(" on wm_b.wo_no = rr.wo_no ").
Append(" and wm_b.rds_no = rr.rds_no ").
Append(" where wm_b.wo_no = ").Append(workOrderNumber is null ? -1 : workOrderNumber.Value).Append(' ').
Append(" and wm_b.proc_step_no = ").Append(workOrderStep is null ? -1 : workOrderStep.Value).Append(' ').
Append(" and wm_b.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append(" and wm_b.rds_no = wm.rds_no ").
Append(" order by wm_b.slot_no ").
Append(" on wi.wo_no = rr.wo_no ").
Append(" and wi.rds_no = rr.rds_no ").
Append(" left join lsl2sql.dbo.wm_out_slot wo ").
Append(" on wo.wo_no = wi.wo_no ").
Append(" and wo.rds = wi.rds_no ").
Append(" and wo.in_cass_no = wi.in_cass_no ").
Append(" and wo.in_slot_no = wi.slot_no ").
Append(" where wi.wo_no = ").Append(workOrderNumber is null ? -1 : workOrderNumber.Value).Append(' ').
Append(" and wi.rds_no = wm.rds ").
Append(" order by wi.in_cass_no, wi.slot_no ").
Append(" for json path ").
Append(" ) [group] ").
Append("from lsl2sql.dbo.wm_in_slot_no wm ").
Append("from lsl2sql.dbo.wm_out_slot wm ").
Append("where wm.wo_no = ").Append(workOrderNumber is null ? -1 : workOrderNumber.Value).Append(' ').
Append(" and wm.proc_step_no = ").Append(workOrderStep is null ? -1 : workOrderStep.Value).Append(' ').
Append(" and wm.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append("group by wm.rds_no ").
Append("order by wm.rds_no ").
Append(" and wm.out_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append("group by wm.rds ").
Append("order by wm.rds ").
Append("for json path ");
return result.ToString();
}

View File

@ -52,14 +52,6 @@
</div>
</td>
</tr>
<tr>
<td>
<input class="btn btn-primary" type="button" id="zone1" value="Zone 1" />
</td>
<td>
<input class="btn btn-primary" type="button" id="zone2" value="Zone 2" />
</td>
</tr>
<tr>
<td>
<input class="btn btn-primary" type="button" id="layer1" value="Layer 1" />
@ -101,8 +93,6 @@
<script>
$(document).ready(function () {
$("#zone1").click(function () { zone(1) });
$("#zone2").click(function () { zone(2) });
$("#layer1").click(function () { layer(1) });
$("#layer2").click(function () { layer(2) });
$("#layer3").click(function () { layer(3) });

View File

@ -800,9 +800,6 @@ function copy() {
function clearWorkMaterial() {
_workMaterial = {};
$("#scan").val("");
$("#zone1").show();
$("#zone1").show();
$("#zone2").show();
$("#layer1").show();
$("#layer2").show();
$("#layer3").show();
@ -835,12 +832,17 @@ function postWorkMaterial() {
ShowErrorMessage("Select layer and try agian");
else {
_workMaterial['psn'] = data.PSN;
_workMaterial['layer'] = data.Layer;
_workMaterial['pocket'] = data.Pocket;
_workMaterial['reactor'] = data.Reactor;
_workMaterial['slotNumber'] = data.SlotNumber;
_workMaterial['inSlotNumber'] = data.InSlotNumber;
_workMaterial['runDataSheet'] = data.RunDataSheet;
_workMaterial['outSlotNumber'] = data.OutSlotNumber;
_workMaterial['inCassetteNumber'] = data.InCassetteNumber;
_workMaterial['outCassetteNumber'] = data.OutCassetteNumber;
var mesage = "Data Saved for {" + _workMaterial['scan'] + "} RDS {" + data.RunDataSheet + "} slot {" + data.OutSlotNumber + "}";
$.post(_apiUrl + "/api/Reactors/", _workMaterial, function (data) {
DisplayWSMessage("info", "Data Saved use [" + data + "]", null);
DisplayWSMessage("info", mesage + " use [" + data + "]", null);
}).fail(function () {
ShowErrorMessage("Error");
});
@ -857,48 +859,42 @@ function initWorkMaterial(apiUrl) {
$("#runDataSheet6").hide();
};
function zone(zoneNumber) {
function layer(layerNumber) {
$("#layer1").hide();
$("#layer2").hide();
$("#layer3").hide();
var scan = $("#scan").val();
_workMaterial['zone'] = zoneNumber;
$("#layer" + layerNumber).show();
var username = $("#username").val();
if (!scan || scan === "" || scan.length < 3 || scan[0] !== 'o') {
_workMaterial['layer'] = layerNumber;
if (!scan || scan === "" || scan.length < 3 || (scan[0] !== 'o' && scan[0] !== 'O')) {
ShowErrorMessage("Invalid WM Out");
}
else if (!username || username === "" || username.length < 2) {
ShowErrorMessage("Invalid username");
}
else {
$("#zone1").hide();
$("#zone2").hide();
_workMaterial['scan'] = scan;
$("#zone" + zoneNumber).show();
_workMaterial['username'] = username;
$.getJSON(_apiUrl + "/api/WorkMaterial/" + scan + "/", function (data) {
if (data.Results.length === 0)
ShowErrorMessage("No data found");
var filtered = [];
for (var i = 0; i < data.Results.length; i++) {
if (data.Results[i].Zone != zoneNumber)
continue;
filtered.push(data.Results[i]);
}
if (data.Results.length !== 0 && filtered.length === 0)
ShowErrorMessage("All data filted");
else {
$("#cassetteGrid").igGrid({
dataSource: filtered,
primaryKey: "SlotNumber",
dataSource: data,
primaryKey: "OutSlotNumber",
features: [
{ name: "Selection", mode: "row", multipleSelection: false, rowSelectionChanged: postWorkMaterial },
{ name: 'Resizing' },
{ name: "Filtering", type: "local" },
],
responseDataKey: "Results",
});
var distinct = [];
for (var i = 0; i < filtered.length; i++) {
if (distinct.indexOf(filtered[i].RunDataSheet) > -1)
for (var i = 0; i < data.Results.length; i++) {
if (distinct.indexOf(data.Results[i].RunDataSheet) > -1)
continue;
distinct.push(filtered[i].RunDataSheet);
distinct.push(data.Results[i].RunDataSheet);
}
if (distinct.length > 0) {
$("#runDataSheet1").val(distinct[0]);
@ -930,14 +926,6 @@ function zone(zoneNumber) {
}
};
function layer(layerNumber) {
$("#layer1").hide();
$("#layer2").hide();
$("#layer3").hide();
$("#layer" + layerNumber).show();
_workMaterial['layer'] = layerNumber;
};
function runDataSheet(runDataSheetIndex) {
var runDataSheet = $("#runDataSheet" + runDataSheetIndex).val();
_workMaterial['runDataSheet'] = runDataSheet;

View File

@ -1,10 +1,13 @@
namespace OI.Metrology.Shared.DataModels;
public record WorkMaterial(int SLOT_NO,
string RDS_NO,
public record WorkMaterial(string RDS_NO,
int REACTOR,
string POCKET_NO,
string ZONE,
int IN_CASS_NO,
int IN_SLOT_NO,
int OUT_CASS_NO,
int OUT_SLOT_NO,
string PS_NO,
string RECIPE_NAME,
int RECIPE_NO,
@ -21,21 +24,27 @@ public record WorkMaterial(int SLOT_NO,
public static WorkMaterialV2 Map(WorkMaterial item)
{
WorkMaterialV2 result = new(item.SLOT_NO,
item.RDS_NO,
WorkMaterialV2 result = new(item.RDS_NO,
item.REACTOR,
item.POCKET_NO,
item.ZONE,
item.IN_CASS_NO,
item.IN_SLOT_NO,
item.OUT_CASS_NO,
item.OUT_SLOT_NO,
item.PS_NO);
return result;
}
}
public record WorkMaterialV2(int SlotNumber,
string RunDataSheet,
public record WorkMaterialV2(string RunDataSheet,
int Reactor,
string Pocket,
string Zone,
int InCassetteNumber,
int InSlotNumber,
int OutCassetteNumber,
int OutSlotNumber,
string PSN)
{ }

View File

@ -3,13 +3,16 @@ namespace OI.Metrology.Shared.DataModels;
public class WorkMaterialOut
{
public int? InCassetteNumber { get; set; }
public int? InSlotNumber { get; set; }
public string? Layer { get; set; }
public int? OutCassetteNumber { get; set; }
public int? OutSlotNumber { get; set; }
public string? PSN { get; set; }
public string? Pocket { get; set; }
public int? Reactor { get; set; }
public string? RunDataSheet { get; set; }
public string? Scan { get; set; }
public int? SlotNumber { get; set; }
public string? Username { get; set; }
public string? Zone { get; set; }