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(); StringBuilder result = new();
_ = result.Append("select ( "). _ = result.Append("select ( ").
Append(" select wm_b.slot_no, "). Append(" select wi.rds_no, ").
Append(" wm_b.rds_no, ").
Append(" rr.reactor, "). Append(" rr.reactor, ").
Append(" wm_b.pocket_no, "). Append(" wi.pocket_no, ").
Append(" wm_b.zone, "). 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.ps_no, ").
Append(" rr.recipe_name, "). Append(" rr.recipe_name, ").
Append(" rr.recipe_no, "). Append(" rr.recipe_no, ").
Append(" rr.spec_type "). 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(" inner join lsl2sql.dbo.react_run rr ").
Append(" on wm_b.wo_no = rr.wo_no "). Append(" on wi.wo_no = rr.wo_no ").
Append(" and wm_b.rds_no = rr.rds_no "). Append(" and wi.rds_no = rr.rds_no ").
Append(" where wm_b.wo_no = ").Append(workOrderNumber is null ? -1 : workOrderNumber.Value).Append(' '). Append(" left join lsl2sql.dbo.wm_out_slot wo ").
Append(" and wm_b.proc_step_no = ").Append(workOrderStep is null ? -1 : workOrderStep.Value).Append(' '). Append(" on wo.wo_no = wi.wo_no ").
Append(" and wm_b.in_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' '). Append(" and wo.rds = wi.rds_no ").
Append(" and wm_b.rds_no = wm.rds_no "). Append(" and wo.in_cass_no = wi.in_cass_no ").
Append(" order by wm_b.slot_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(" for json path ").
Append(" ) [group] "). 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("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.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(" and wm.out_cass_no = ").Append(workOrderCassette is null ? -1 : workOrderCassette.Value).Append(' ').
Append("group by wm.rds_no "). Append("group by wm.rds ").
Append("order by wm.rds_no "). Append("order by wm.rds ").
Append("for json path "); Append("for json path ");
return result.ToString(); return result.ToString();
} }

View File

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

View File

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

View File

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

View File

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