pre cutover push
This commit is contained in:
@ -66,6 +66,8 @@ $Insert DAILY_PERFORMANCE_REPORT_EQUATES
|
||||
$Insert SCHED_DET_NG_EQUATES
|
||||
$Insert MAKEUP_WAFERS_EQUATES
|
||||
$Insert REACTOR_EQUATES
|
||||
$Insert WAFER_COUNTER_EQUATES
|
||||
$Insert REACTOR_DAILY_UPTIME_EQUATES
|
||||
|
||||
// Reduce modes (for Select statement)
|
||||
Equ NEW_EXIST$ To 0
|
||||
@ -78,7 +80,7 @@ Declare subroutine Report_Services, Make.List
|
||||
Declare function Set_Printer, Get_Printer, Msg, Get_Status, Printer_Select, obj_Install, Dialog_Box, obj_Location
|
||||
Declare function Schedule_Services, Error_Services, Location_Services, SRP_Array, Signature_Services, obj_RDS_Test
|
||||
Declare function Epi_Part_Services, SRP_Math, Database_Services, SRP_JSON, Reactor_Services, SRP_Datetime
|
||||
Declare function SRP_Array, Environment_Services, Logging_Services, Datetime, Select_Into
|
||||
Declare function SRP_Array, Environment_Services, Logging_Services, Datetime, Select_Into, Wafer_Counter_Services
|
||||
|
||||
Equ TAB TO \09\
|
||||
|
||||
@ -107,33 +109,52 @@ Return Response or ""
|
||||
Service GetMakeupInventoryReportJSON()
|
||||
|
||||
clearselect
|
||||
Statement1 = 'LIST MAKEUP_WAFERS WO_NO CASS_NO CUST_NO CUST_PART_NO EPI_PART_NO PROD_ORD_NO PROD_VER_NO PS_NO RDS_NO REACT_TYPE SAP_BATCH_NO UNLOAD_DTM WAFER_SIZE WM_OUT_NO WFR_QTY BY WAFER_SIZE BY PS_NO'
|
||||
Statement1 = 'LIST MAKEUP_WAFERS WO_NO CASS_NO CUST_NO CUST_PART_NO EPI_PART_NO PROD_ORD_NO PROD_VER_NO PS_NO RDS_NO REACT_TYPE SAP_BATCH_NO UNLOAD_DTM WAFER_SIZE WM_OUT_NO WFR_QTY EXPIRED BY WAFER_SIZE BY PS_NO'
|
||||
MUInv = Select_Into(Statement1, 'EDT')
|
||||
|
||||
If Error_Services('NoError') then
|
||||
MUInvJSON = ''
|
||||
objJSON = ''
|
||||
If SRP_JSON(objJSON, 'New', 'Object') then
|
||||
objReactArray = ''
|
||||
If SRP_JSON(objReactArray, 'New', 'Array') then
|
||||
For each Row in MUInv using @FM setting fPos
|
||||
If SRP_JSON(objRow, 'New', 'Object') then
|
||||
SRP_JSON(objRow, 'SetValue', 'workOrderNo', Row<0, 2>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'cassNo', Row<0, 3>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'custNo', Row<0, 4>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'custPartNo', Row<0, 5>)
|
||||
SRP_JSON(objRow, 'SetValue', 'epiPartNo', Row<0, 6>)
|
||||
SRP_JSON(objRow, 'SetValue', 'prodOrderNo', Row<0, 7>)
|
||||
SRP_JSON(objRow, 'SetValue', 'prodVerNo', Row<0, 8>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'prodSpecNo', Row<0, 9>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'rdsNo', Row<0, 10>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'reactType', Row<0, 11>)
|
||||
SRP_JSON(objRow, 'SetValue', 'sapBatchNo', Row<0, 12>)
|
||||
SRP_JSON(objRow, 'SetValue', 'unloadDtm', Row<0, 13>)
|
||||
SRP_JSON(objRow, 'SetValue', 'wfrSize', Row<0, 14>)
|
||||
SRP_JSON(objRow, 'SetValue', 'wmOutNo', Row<0, 15>)
|
||||
SRP_JSON(objRow, 'SetValue', 'wfrQty', Row<0, 16>, 'number')
|
||||
SRP_JSON(objReactArray, 'Add', objRow)
|
||||
SRP_JSON(objRow, 'Release')
|
||||
end
|
||||
objRow = ''
|
||||
If SRP_JSON(objRow, 'New', 'Object') then
|
||||
SRP_JSON(objRow, 'SetValue', 'workOrderNo', Row<0, 2>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'cassNo', Row<0, 3>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'custNo', Row<0, 4>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'custPartNo', Row<0, 5>)
|
||||
SRP_JSON(objRow, 'SetValue', 'epiPartNo', Row<0, 6>)
|
||||
SRP_JSON(objRow, 'SetValue', 'prodOrderNo', Row<0, 7>)
|
||||
SRP_JSON(objRow, 'SetValue', 'prodVerNo', Row<0, 8>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'prodSpecNo', Row<0, 9>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'rdsNo', Row<0, 10>, 'number')
|
||||
SRP_JSON(objRow, 'SetValue', 'reactType', Row<0, 11>)
|
||||
SRP_JSON(objRow, 'SetValue', 'sapBatchNo', Row<0, 12>)
|
||||
SRP_JSON(objRow, 'SetValue', 'unloadDtm', Row<0, 13>)
|
||||
SRP_JSON(objRow, 'SetValue', 'wfrSize', Row<0, 14>)
|
||||
SRP_JSON(objRow, 'SetValue', 'wmOutNo', Row<0, 15>)
|
||||
SRP_JSON(objRow, 'SetValue', 'wfrQty', Row<0, 16>, 'number')
|
||||
|
||||
ReactType = Xlate('WO_MAT', Row<0, 2>:'*':Row<0, 3>, 'REACTOR_TYPE', 'X')
|
||||
If ReactType NE 'EPP' then
|
||||
LotID = Row<0, 10>
|
||||
end else
|
||||
LotID = Row<0, 2>:'*1*':Row<0, 3>
|
||||
end
|
||||
WcRec = Wafer_Counter_Services('GetLastScan', LotID, 'MU')
|
||||
WcQty = WcRec<WAFER_COUNTER.SCAN_QTY$>
|
||||
WcDtm = WcRec<WAFER_COUNTER.SCAN_DTM$>
|
||||
|
||||
SRP_JSON(objRow, 'SetValue', 'muWaferCounterQty', WcQty)
|
||||
SRP_JSON(objRow, 'SetValue', 'muWaferCounterDtm', WcDtm)
|
||||
|
||||
SRP_JSON(objRow, 'SetValue', 'expired', IConv(Row<0, 17>, 'B'), 'Boolean')
|
||||
|
||||
SRP_JSON(objReactArray, 'Add', objRow)
|
||||
SRP_JSON(objRow, 'Release')
|
||||
end
|
||||
Next Row
|
||||
SRP_JSON(objJSON, 'Set', 'MUInvReport', objReactArray)
|
||||
SRP_JSON(objReactArray, 'Release')
|
||||
@ -466,14 +487,8 @@ Service GetMaterialTrackReport(RptColumns, LocationFilter)
|
||||
PrintSetup<1,5> = '1' ;* Page Range
|
||||
PrintSetup<1,6> = 7 ;* full mouse and keyboard support
|
||||
|
||||
If @UserName EQ 'MESCATXMUSER' then
|
||||
PageSetup = '1' ;* Landscape
|
||||
PrintSetup = '0' ;* Print to specific location
|
||||
PrintPath = Printer_Select(PrinterID) ;* Select printer - Displays popup if PrinterPort not found
|
||||
end else
|
||||
PrintPath = ''
|
||||
end
|
||||
stat = Set_Printer('INIT',FileName,Title,Margins,PageSetup,PrintSetup,PrintPath)
|
||||
PrintPath = ''
|
||||
stat = Set_Printer('INIT',FileName,Title,Margins,PageSetup,PrintSetup,PrintPath)
|
||||
|
||||
IF stat < 0 THEN
|
||||
ErrorMsg = 'Stat = ' : Stat : ', PrintPath = ' : PrintPath
|
||||
@ -720,6 +735,7 @@ Service GetMetricsJSON(Date)
|
||||
hMetricsObj = ''
|
||||
hMetricsArray = ''
|
||||
hDayMetricsObj = ''
|
||||
hStatusObj = ''
|
||||
If SRP_JSON(hMetricsObj, 'NEW', 'OBJECT') then
|
||||
If SRP_JSON(hMetricsArray, 'NEW', 'ARRAY') then
|
||||
DateIndex = 1
|
||||
@ -794,53 +810,6 @@ end service
|
||||
|
||||
Service GetMaterialTrackJSON()
|
||||
|
||||
MatRep = Database_Services('ReadDataRow', 'SYSLISTS', 'MAT_REPORT')
|
||||
If Error_Services('NoError') then
|
||||
MatRepJSON = ''
|
||||
If SRP_JSON(objJSON, 'New', 'Object') then
|
||||
If SRP_JSON(objReactArray, 'New', 'Array') then
|
||||
PrevReactNo = ''
|
||||
For each Row in MatRep using @FM setting fPos
|
||||
ReactNo = Row<0, 1>
|
||||
If ReactNo NE PrevReactNo then
|
||||
// Add current reactor object and release it
|
||||
If Assigned(objReactor) then
|
||||
// Set work order array
|
||||
SRP_JSON(objReactor, 'Set', 'workOrders', objWorkOrderArray)
|
||||
SRP_JSON(objWorkOrderArray, 'Release')
|
||||
SRP_JSON(objReactArray, 'Add', objReactor)
|
||||
SRP_JSON(objReactor, 'Release')
|
||||
end
|
||||
// Create a new reactor object
|
||||
If SRP_JSON(objReactor, 'New', 'Object') then
|
||||
SRP_JSON(objReactor, 'SetValue', 'reactorNo', ReactNo)
|
||||
SRP_JSON(objReactor, 'SetValue', 'reactorType', Row<0, 2>)
|
||||
// Create a work order array
|
||||
If SRP_JSON(objWorkOrderArray, 'New', 'Array') then
|
||||
GoSub AddWorkOrderJSON
|
||||
end
|
||||
end
|
||||
end else
|
||||
// Add to the current reactor object
|
||||
GoSub AddWorkOrderJSON
|
||||
end
|
||||
PrevReactNo = ReactNo
|
||||
Next Row
|
||||
SRP_JSON(objJSON, 'Set', 'matReport', objReactArray)
|
||||
SRP_JSON(objReactArray, 'Release')
|
||||
end
|
||||
Response = SRP_JSON(objJSON, 'Stringify', 'Styled')
|
||||
SRP_JSON(objJSON, 'Release')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
end service
|
||||
|
||||
|
||||
Service GetMaterialTrackJSONNew()
|
||||
|
||||
MatRep = Database_Services('ReadDataRow', 'SYSLISTS', 'MAT_REPORT')
|
||||
If Error_Services('NoError') then
|
||||
MatRepJSON = ''
|
||||
@ -889,8 +858,7 @@ Service GetMaterialTrackJSONNew()
|
||||
end
|
||||
Response = SRP_JSON(objJSON, 'Stringify', 'Styled')
|
||||
SRP_JSON(objJSON, 'Release')
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
end service
|
||||
@ -900,8 +868,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
|
||||
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
||||
Lock hSysLists, ServiceKeyID then
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '1'
|
||||
LogData<3> = 'Begin service.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -926,8 +894,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
Reduce_Script = "WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'"
|
||||
mode = NEXT_CUR$
|
||||
DeleteKeyList = ''
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '2'
|
||||
LogData<3> = 'Calling Reduce with query "':Reduce_Script:'" using next available cursor.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -944,8 +912,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
End
|
||||
end
|
||||
End
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '3'
|
||||
LogData<3> = 'Deleting selected records.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -968,8 +936,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
For counter = 0 To 8
|
||||
ClearSelect counter
|
||||
Next counter
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '4'
|
||||
LogData<3> = 'Selecting RDS records using query "':Query:'".'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1023,8 +991,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
QueryReactorNo = ReactorNo
|
||||
end
|
||||
Query = "SELECT SCHED_DET_NG WITH REACT_NO EQ ":QueryReactorNo:" AND WITH BLOCK_OUT NE 1 AND WITH START_DTM LT '":OConv(ReportDate + 1, 'DT2/^H'):"' AND WITH STOP_DTM GT '":OConv(ReportDate, 'DT2/^H'):"'"
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '5.':RIndex:'.1'
|
||||
LogData<3> = 'Selecting SCHED_DET_NG records for reactor ':ReactorNo:' using query "':Query:'".'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1043,8 +1011,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
SchedDetKeyIDs<0, -1> = SchedKeyID
|
||||
Repeat
|
||||
end
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '5.':RIndex:'.2'
|
||||
LogData<3> = 'Reading SCHED_DET_NG records for reactor ':ReactorNo:'.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1092,12 +1060,11 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
SchedEpiParts<0, -1> = Xlate('WO_LOG', SchedWONo, 'EPI_PART_NO', 'X')
|
||||
|
||||
SchedKeys<0, -1> = SchedDetKeyID
|
||||
* SchedEpiParts<0, -1> = Xlate('PROD_SPEC', SchedPSN, 'EPI_PART_NO', 'X')
|
||||
Next SchedDetKeyID
|
||||
end
|
||||
end
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '5.':RIndex:'.3'
|
||||
LogData<3> = 'Writing new DAILY_PERFORMANCE records reactor ':ReactorNo:'.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1139,8 +1106,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
sort_list = "DATE_OUT"
|
||||
Reduce_Script = "WITH {REACTOR} EQ '":ReactorNo:"' AND WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'"
|
||||
mode = NEXT_CUR$
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '5.':RIndex:'.4'
|
||||
LogData<3> = 'Selecting new DAILY_PERFORMANCE records for reactor ':ReactorNo:' using query "':Reduce_Script:'" via Reduce.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1157,8 +1124,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
End
|
||||
end
|
||||
End
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '5.':RIndex:'.5'
|
||||
LogData<3> = 'Updating new DAILY_PERFORMANCE records for reactor ':ReactorNo:'.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1184,16 +1151,16 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
end
|
||||
|
||||
Next ReactorNo
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '6'
|
||||
LogData<3> = 'Begin building DAILY_PERFORMANCE_REPORT rows.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
|
||||
ReportKeys = ''
|
||||
For each Row in ReportData using @FM setting fPos
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '6.':fPos
|
||||
LogData<3> = 'Building DAILY_PERFORMANCE_REPORT row ':fPos:'.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1233,7 +1200,7 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
EQU PRODUCTIVE$ To 1
|
||||
EQU UNSCHED$ to 2
|
||||
EQU SCHED$ to 3
|
||||
TotalReactorData = Reactor_Services('GetReactorUptimePercentageByTimeSpan', Row<0, 7> , ActualStartDTM, ActualStopDTM)
|
||||
TotalReactorData = Reactor_Services('GetReactorUptimeMetricsByTimeSpan', Row<0, 7> , ActualStartDTM, ActualStopDTM)
|
||||
Rec<DAILY_PERFORMANCE_REPORT.TOTAL_PROD_PERCENT$> = TotalReactorData<1, PRODUCTIVE$>
|
||||
Rec<DAILY_PERFORMANCE_REPORT.TOTAL_PROD_MIN$> = TotalReactorData<2, PRODUCTIVE$>
|
||||
Rec<DAILY_PERFORMANCE_REPORT.TOTAL_UNSCHED_PERCENT$> = TotalReactorData<1, UNSCHED$>
|
||||
@ -1270,8 +1237,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
sort_list = "DATE_OUT"
|
||||
Reduce_Script = "WITH {DATE_OUT} EQ '":OConv(ReportDate, 'D4/'):"'"
|
||||
mode = NEXT_CUR$
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '7'
|
||||
LogData<3> = 'Selecing DAILY_PERFORMANCE_REPORT rows to delete using query "':Reduce_Script:'" via Reduce.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1290,8 +1257,8 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
End
|
||||
end
|
||||
end
|
||||
|
||||
LogData = LoggingDtm
|
||||
LogData = ''
|
||||
LogData<1> = LoggingDtm
|
||||
LogData<2> = '8'
|
||||
LogData<3> = 'End service.'
|
||||
Logging_Services('AppendLog', objReportsLog, LogData, @RM, @FM)
|
||||
@ -1301,6 +1268,180 @@ Service CalcDailyPerformanceData(DateOut)
|
||||
|
||||
end service
|
||||
|
||||
Service GenerateOrUpdateDailyReactorUptimeData()
|
||||
//Generates new or updates existing Reactor uptime data for all reactors in the current day.
|
||||
hSysLists = Database_Services('GetTableHandle', 'SYSLISTS')
|
||||
Lock hSysLists, ServiceKeyID then
|
||||
Today = Date()
|
||||
DataArray = ''
|
||||
//ASM Reactors
|
||||
ASMRecordKey = 'ASM*': Today
|
||||
ASMUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'ASM')
|
||||
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', ASMRecordKey, ASMUptimeRec, True$, False$, True$)
|
||||
//HTR Reactors
|
||||
HTRRecordKey = 'HTR*': Today
|
||||
HTRUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'HTR')
|
||||
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', HTRRecordKey, HTRUptimeRec, True$, False$, True$)
|
||||
//EPP Reactors
|
||||
EPPRecordKey = 'EPP*': Today
|
||||
EPPUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'EPP')
|
||||
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', EPPRecordKey, EPPUptimeRec, True$, False$, True$)
|
||||
//All Reactors
|
||||
ALLRecordKey = 'ALL*': Today
|
||||
ALLUptimeRec = Reactor_Services('GetReactorUptimeMetricsByTypeAndTimeSpan', Today, Today + 1, 'ALL')
|
||||
Database_Services('WriteDataRow', 'REACTOR_DAILY_UPTIME', ALLRecordKey, ALLUptimeRec, True$, False$, True$)
|
||||
Unlock hSysLists, ServiceKeyID else Null
|
||||
end
|
||||
end service
|
||||
|
||||
Service GetDailyReactorUptimeDataJSON(ReportStartDt, ReportEndDt)
|
||||
Response = ''
|
||||
Begin Case
|
||||
Case ReportStartDt EQ ''
|
||||
Error_Services('Add', 'Start Date was not provided.')
|
||||
Case ReportEndDt EQ ''
|
||||
Error_Services('Add', 'End Date was not provided.')
|
||||
End Case
|
||||
ReportStartDT = IConv(ReportStartDt, 'D4/H')
|
||||
ReportEndDt = IConv(ReportEndDt, 'D4/H')
|
||||
//Calculate Days to include
|
||||
FirstDay = SRP_Datetime('Date', ReportStartDt)
|
||||
LastDay = SRP_Datetime('Date', ReportEndDt) - 1
|
||||
DataArray = ''
|
||||
ASMPeriodUptimeMinutes = 0
|
||||
ASMPeriodAvailMinutes = 0
|
||||
HTRPeriodUptimeMinutes = 0
|
||||
HTRPeriodAvailMinutes = 0
|
||||
EPPPeriodUptimeMinutes = 0
|
||||
EPPPeriodAvailMinutes = 0
|
||||
AllPeriodUptimeMinutes = 0
|
||||
AllPeriodAvailMinutes = 0
|
||||
ReactorUptimeJson = ''
|
||||
//Create Root Object
|
||||
If SRP_Json(ReactorUptimeJson, 'New') then
|
||||
//Create an Array of days
|
||||
ReactorUptimeDaysJson = ''
|
||||
If SRP_Json(ReactorUptimeDaysJson, 'New', 'Array') then
|
||||
//For each day create a daily uptime object
|
||||
for day = FirstDay to LastDay
|
||||
//Single Day Object
|
||||
ASMUptimeKey = 'ASM*':day
|
||||
HTRUptimeKey = 'HTR*':day
|
||||
EPPUptimeKey = 'EPP*':day
|
||||
AllUptimeKey = 'ALL*':day
|
||||
ReactorUptimeDayJson = ''
|
||||
If SRP_Json(ReactorUptimeDayJson, 'New') then
|
||||
ASMUptime = 0
|
||||
HTRUptime = 0
|
||||
EPPUptime = 0
|
||||
AllUptime = 0
|
||||
If RowExists('REACTOR_DAILY_UPTIME', ASMUptimeKey) then
|
||||
ASMUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', ASMUptimeKey, True$, 0)
|
||||
ASMUptime = ASMUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
|
||||
ASMUptime = SRP_Math('ROUND', ASMUptime * 100, 2)
|
||||
ASMUptimeMinutes = ASMUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
|
||||
ASMAvailMinutes = ASMUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
|
||||
ASMPeriodUptimeMinutes += ASMUptimeMinutes
|
||||
ASMPeriodAvailMinutes += ASMAvailMinutes
|
||||
end
|
||||
If RowExists('REACTOR_DAILY_UPTIME', HTRUptimeKey) then
|
||||
HTRUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', HTRUptimeKey, True$, 0)
|
||||
HTRUptime = HTRUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
|
||||
HTRUptime = SRP_Math('ROUND', HTRUptime * 100, 2)
|
||||
HTRUptimeMinutes = HTRUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
|
||||
HTRAvailMinutes = HTRUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
|
||||
HTRPeriodUptimeMinutes += HTRUptimeMinutes
|
||||
HTRPeriodAvailMinutes += HTRAvailMinutes
|
||||
end
|
||||
If RowExists('REACTOR_DAILY_UPTIME', EPPUptimeKey) then
|
||||
EPPUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', EPPUptimeKey, True$, 0)
|
||||
EPPUptime = EPPUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
|
||||
EPPUptime = SRP_Math('ROUND', EPPUptime * 100, 2)
|
||||
EPPUptimeMinutes = EPPUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
|
||||
EPPAvailMinutes = EPPUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
|
||||
EPPPeriodUptimeMinutes += EPPUptimeMinutes
|
||||
EPPPeriodAvailMinutes += EPPAvailMinutes
|
||||
end
|
||||
If RowExists('REACTOR_DAILY_UPTIME', AllUptimeKey) then
|
||||
AllUptimeRec = Database_Services('ReadDataRow', 'REACTOR_DAILY_UPTIME', AllUptimeKey, True$, 0)
|
||||
AllUptime = AllUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_PERCENTAGE$>
|
||||
AllUptime = SRP_Math('ROUND', AllUptime * 100, 2)
|
||||
AllUptimeMinutes = AllUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_UPTIME_MINUTES$>
|
||||
AllAvailMinutes = AllUptimeRec<REACTOR_DAILY_UPTIME_TOTAL_AVAIL_MINUTES$>
|
||||
AllPeriodUptimeMinutes += AllUptimeMinutes
|
||||
AllPeriodAvailMinutes += AllAvailMinutes
|
||||
end
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "ReportDate", Oconv(day, 'DT4/H'))
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "ASMUptime", ASMUptime)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "ASMUptimeMinutes", ASMUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "ASMAvailMinutes", ASMAvailMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "HTRUptime", HTRUptime)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "HTRUptimeMinutes", HTRUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "HTRAvailMinutes", HTRAvailMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "EPPUptime", EPPUptime)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "EPPUptimeMinutes", EPPUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "EPPAvailMinutes", EPPAvailMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "AllUptime", AllUptime)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "AllUptimeMinutes", ALLUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeDayJson, "SetValue", "AllAvailMinutes", ALLAvailMinutes)
|
||||
SRP_Json(ReactorUptimeDaysJson, "Add", ReactorUptimeDayJson)
|
||||
//Release it
|
||||
SRP_Json(ReactorUptimeDayJson, "Release")
|
||||
|
||||
|
||||
end
|
||||
Next day
|
||||
//Add array to root object
|
||||
SRP_Json(ReactorUptimeJson, 'Set', 'Days', ReactorUptimeDaysJson)
|
||||
//Close out array
|
||||
SRP_Json(ReactorUptimeDaysJson, 'Release')
|
||||
|
||||
end
|
||||
ReactorUptimeWTDJson = ''
|
||||
If SRP_Json(ReactorUptimeWTDJson, 'New') then
|
||||
If ASMPeriodAvailMinutes GT 0 then
|
||||
ASMWTDUptimePercent = SRP_Math('ROUND', (ASMPeriodUptimeMinutes / ASMPeriodAvailMinutes) * 100, 2)
|
||||
end else
|
||||
ASMWTDUptimePercent = 0
|
||||
end
|
||||
If HTRPeriodAvailMinutes GT 0 then
|
||||
HTRWTDUptimePercent = SRP_Math('ROUND', (HTRPeriodUptimeMinutes / HTRPeriodAvailMinutes) * 100, 2)
|
||||
end else
|
||||
HTRWTDUptimePercent = 0
|
||||
end
|
||||
If EPPPeriodAvailMinutes GT 0 then
|
||||
EPPWTDUptimePercent = SRP_Math('ROUND', (EPPPeriodUptimeMinutes / EPPPeriodAvailMinutes) * 100, 2)
|
||||
end else
|
||||
EPPWTDUptimePercent = 0
|
||||
end
|
||||
If ALLPeriodAvailMinutes GT 0 then
|
||||
ALLWTDUptimePercent = SRP_Math('ROUND', (ALLPeriodUptimeMinutes / ALLPeriodAvailMinutes) * 100, 2)
|
||||
end else
|
||||
ALLWTDUptimePercent = 0
|
||||
end
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ASMWtdUptimeMinutes", ASMPeriodUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ASMWTDAvailMinutes", ASMPeriodAvailMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ASMWTDUptimePercent", ASMWTDUptimePercent)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "HTRWTDUptimeMinutes", HTRPeriodUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "HTRWTDAvailMinutes", HTRPeriodAvailMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "HTRWTDUptimePercent", HTRWTDUptimePercent)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "EPPWTDUptimeMinutes", EPPPeriodUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "EPPWTDAvailMinutes", EPPPeriodAvailMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "EPPWTDUptimePercent", EPPWTDUptimePercent)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ALLWTDUptimeMinutes", ALLPeriodUptimeMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ALLWTDAvailMinutes", ALLPeriodAvailMinutes)
|
||||
SRP_Json(ReactorUptimeWTDJson, "SetValue", "ALLWTDUptimePercent", ALLWTDUptimePercent)
|
||||
SRP_Json(ReactorUptimeJson, 'Set', 'WTDMetrics', ReactorUptimeWTDJson)
|
||||
SRP_Json(ReactorUptimeWTDJson, 'Release')
|
||||
end
|
||||
// Now get the actual JSON
|
||||
ResponseJson = SRP_Json(ReactorUptimeJson, "Stringify", "STYLED")
|
||||
|
||||
// All done with the root object
|
||||
SRP_Json(ReactorUptimeJson, "Release")
|
||||
Response = ResponseJson
|
||||
end
|
||||
end service
|
||||
|
||||
Service GetDailyPerformanceDataJSON(DateOut)
|
||||
|
||||
@ -1409,63 +1550,6 @@ end service
|
||||
// Internal GoSubs
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
AddWorkOrderJSON:
|
||||
|
||||
// Create a new work order object and add it to the work order array
|
||||
If SRP_JSON(objWorkOrder, 'New', 'Object') then
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'workOrderNo', Row<0, 3>)
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'sapProdNo', Row<0, 4>)
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'subPartNo', Row<0, 5>)
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'epiPartNo', Row<0, 6>)
|
||||
WOQty = Row<0, 7>
|
||||
Swap ',' with '' in WOQty
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'woQty', WOQty)
|
||||
RxQty = Row<0, 8>
|
||||
Swap ',' with '' in RxQty
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'rxQty', RxQty)
|
||||
UnRelQty = Row<0, 9>
|
||||
Swap ',' with '' in UnRelQty
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'unRelQty', UnRelQty)
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'kitLoc', Row<0, 10>)
|
||||
KitQty = Row<0, 11>
|
||||
Swap ',' with '' in KitQty
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'kitQty', KitQty)
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'cassDelta', Row<0, 12>)
|
||||
// Add Kit RO Array
|
||||
If SRP_JSON(objKitROArray, 'New', 'Array') then
|
||||
KitCass = Row<0, 13>
|
||||
For each CassNo in KitCass using ','
|
||||
SRP_JSON(objKitROArray, 'AddValue', CassNo)
|
||||
Next CassNo
|
||||
SRP_JSON(objWorkOrder, 'Set', 'kitRunOrder', objKitROArray)
|
||||
SRP_JSON(objKitROArray, 'Release')
|
||||
end
|
||||
// Add PTI RO Array
|
||||
If SRP_JSON(objPtiROArray, 'New', 'Array') then
|
||||
PtiCass = Row<0, 14>
|
||||
For each CassNo in PtiCass using ','
|
||||
SRP_JSON(objPtiROArray, 'AddValue', CassNo)
|
||||
Next CassNo
|
||||
SRP_JSON(objWorkOrder, 'Set', 'ptiRunOrder', objPtiROArray)
|
||||
SRP_JSON(objPtiROArray, 'Release')
|
||||
end
|
||||
// Add Load RO Array
|
||||
If SRP_JSON(objLoadROArray, 'New', 'Array') then
|
||||
LoadCass = Row<0, 15>
|
||||
For each CassNo in LoadCass using ','
|
||||
SRP_JSON(objLoadROArray, 'AddValue', CassNo)
|
||||
Next CassNo
|
||||
SRP_JSON(objWorkOrder, 'Set', 'loadRunOrder', objLoadROArray)
|
||||
SRP_JSON(objLoadROArray, 'Release')
|
||||
end
|
||||
SRP_JSON(objWorkOrder, 'SetValue', 'comments', '')
|
||||
SRP_JSON(objWorkOrderArray, 'Add', objWorkOrder)
|
||||
SRP_JSON(objWorkOrder, 'Release')
|
||||
end
|
||||
|
||||
return
|
||||
|
||||
|
||||
ReadRecord:
|
||||
|
||||
* Zero Break Flags To False
|
||||
@ -1761,11 +1845,3 @@ ClearCursors:
|
||||
|
||||
return
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user