Wolfgang Hottgenroth 569986cf6b fix, integer
2021-12-15 15:05:08 +01:00

416 lines
14 KiB
YAML

openapi: 3.0.3
info:
title: Generic Database API Service
version: "2.0.0"
paths:
# --------------------------------------------------------------------------------------------------
/pdb/v2/baseItem/{articleNumber}:
get:
tags: [ "Regular" ]
operationId: Regular.baseItem
summary: Returns baseItem entries
description: |
```
DATABASETAGBEGIN
pdb_el_reader1
DATABASETAGEND
STATEMENTBEGIN
SELECT Artikelcode AS articleNumber,
Art AS category,
bezeichnung AS description
FROM stammdaten
WHERE Artikelcode = @articleNumber
STATEMENTEND
```
parameters:
- name: articleNumber
in: path
required: true
schema:
type: string
responses:
200:
description: Here are your baseItem items
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/baseItem"
400:
$ref: "#/components/responses/clientSideError"
500:
$ref: "#/components/responses/serverSideError"
# --------------------------------------------------------------------------------------------------
/pdb/v2/productionOrderItem/{productionOrder}:
get:
tags: [ "Regular" ]
operationId: Regular.productionOrderItem
summary: Returns productionOrderItem entries
description: |
```
DATABASETAGBEGIN
pdb_el_reader1
DATABASETAGEND
STATEMENTBEGIN
SELECT
CAST(auftraege.produktionsauftrag AS INT) AS productionOrder
,auftraege.artikelcode AS articleCode
,(CASE WHEN ISNULL(anonyme_cg_geraete.C_Nummer) THEN FALSE ELSE TRUE END) AS isAnonymous
,(CASE WHEN ISNULL(anonyme_cg_geraete.Artikelcode) THEN (CASE WHEN auftraege.C_Nummer = \"\" THEN NULL ELSE auftraege.C_Nummer END) ELSE anonyme_cg_geraete.C_Nummer END) AS cgNumber
,auftraege.stueckzahl AS numberOfPieces
,auftraege.IX AS bomIndex
,auftraege.referenz_dokument AS referenceDocument
FROM auftraege
LEFT JOIN anonyme_cg_geraete ON auftraege.artikelcode = anonyme_cg_geraete.Artikelcode
WHERE auftraege.produktionsauftrag = @productionOrder
STATEMENTEND
```
parameters:
- name: productionOrder
in: path
required: true
schema:
type: integer
responses:
200:
description: Here are your productionOrderItem items
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/productionOrderItem"
400:
$ref: "#/components/responses/clientSideError"
500:
$ref: "#/components/responses/serverSideError"
# --------------------------------------------------------------------------------------------------
/pdb/v2/converterItem/{serialNumber}:
get:
tags: [ "Regular" ]
operationId: Regular.converterItem
summary: Returns converterItem entries
description: |
```
DATABASETAGBEGIN
pdb_el_reader1
DATABASETAGEND
STATEMENTBEGIN
SELECT
geraete_daten.seriennummer AS serialNumber
,CAST(geraete_daten.produktionsauftrag AS INT) AS productionOrder
,(CASE WHEN geraete_daten.sn_lp1 = 0 THEN NULL ELSE geraete_daten.sn_lp1 END) AS snPcb1
,(CASE WHEN geraete_daten.sn_lp2 = 0 THEN NULL ELSE geraete_daten.sn_lp2 END) AS snPcb2
,(CASE WHEN geraete_daten.sn_lp3 = 0 THEN NULL ELSE geraete_daten.sn_lp3 END) AS snPcb3
,(CASE WHEN geraete_daten.sn_lp4 = 0 THEN NULL ELSE geraete_daten.sn_lp4 END) AS snPcb4
,(CASE WHEN geraete_daten.sn_lp5 = 0 THEN NULL ELSE geraete_daten.sn_lp5 END) AS snPcb5
,(CASE WHEN geraete_daten.sn_lp6 = 0 THEN NULL ELSE geraete_daten.sn_lp6 END) AS snPcb6
,(CASE WHEN geraete_daten.sn_lp7 = 0 THEN NULL ELSE geraete_daten.sn_lp7 END) AS snPcb7
,(CASE WHEN geraete_daten.sn_lp8 = 0 THEN NULL ELSE geraete_daten.sn_lp8 END) AS snPcb8
,(CASE WHEN geraete_daten.sn_lp9 = 0 THEN NULL ELSE geraete_daten.sn_lp9 END) AS snPcb9
,(CASE WHEN geraete_daten.sn_lp10 = 0 THEN NULL ELSE geraete_daten.sn_lp10 END) AS snPcb10
,(CASE WHEN geraete_daten.ERev_geplant = \"\" THEN NULL ELSE geraete_daten.ERev_geplant END) AS erPlanned
,(CASE WHEN geraete_daten.ERev_gefertigt = \"\" THEN NULL ELSE geraete_daten.ERev_gefertigt END) AS erProduced
,(CASE WHEN ISNULL(geraete_daten.ausliefer_datum) THEN FALSE ELSE TRUE END) AS isRework
,auftraege.artikelcode AS articleCode
,(CASE WHEN ISNULL(anonyme_cg_geraete.C_Nummer) THEN FALSE ELSE TRUE END) AS isAnonymous
,(CASE WHEN ISNULL(anonyme_cg_geraete.Artikelcode) THEN (CASE WHEN auftraege.C_Nummer = \"\" THEN NULL ELSE auftraege.C_Nummer END) ELSE anonyme_cg_geraete.C_Nummer END) AS cgNumber
,(CASE WHEN ISNULL(ems.Seriennummer) THEN auftraege.IX ELSE ems.Equi_index END) AS bomIndex
,(CASE WHEN ISNULL(ems.Seriennummer) THEN FALSE ELSE TRUE END) AS hasEmsUpdate
,FALSE AS isTestConverter
,geraete_daten.montagedatum AS initialTestDate
,(CASE WHEN geraete_daten.ergebnis_erstinbetriebnahme = \"PASS\" THEN TRUE ELSE FALSE END) AS initialTestResult
,geraete_daten.hv_test_datum AS hvTestDate
,(CASE WHEN geraete_daten.hv_test_ergebnis = \"PASS\" THEN TRUE ELSE FALSE END) AS hvTestResult
,geraete_daten.temp_test_datum AS temperatureTestDate
,(CASE WHEN geraete_daten.temp_test_ergebnis = \"PASS\" THEN TRUE ELSE FALSE END) AS temperatureTestResult
,geraete_daten.kalibrierung_datum AS calibrationDate
,(CASE WHEN geraete_daten.kalibrierung_ergebnis = \"PASS\" THEN TRUE ELSE FALSE END) AS calibrationResult
,geraete_daten.ausliefer_datum AS deliveryDate
FROM geraete_daten
JOIN auftraege ON geraete_daten.produktionsauftrag = auftraege.produktionsauftrag
LEFT JOIN anonyme_cg_geraete ON auftraege.artikelcode = anonyme_cg_geraete.Artikelcode
LEFT JOIN ems ON geraete_daten.seriennummer = ems.Seriennummer
WHERE
geraete_daten.seriennummer = @serialNumber
STATEMENTEND
```
parameters:
- name: serialNumber
in: path
required: true
schema:
type: integer
responses:
200:
description: Here are your converterItem items
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/converterItem"
400:
$ref: "#/components/responses/clientSideError"
500:
$ref: "#/components/responses/serverSideError"
# --------------------------------------------------------------------------------------------------
/pdb/v2/pcbItem:
get:
tags: [ "Regular" ]
operationId: Regular.pcbItem
summary: Returns pcbItem entries
description: |
```
DATABASETAGBEGIN
pdb_el_reader1
DATABASETAGEND
BINDINGHINTBEGIN
stringreplacement
BINDINGHINTEND
STATEMENTBEGIN
SELECT
sn.seriennummer AS serialNumber
,CAST(sn.produktionsauftrag AS INT) AS productionOrder
,sn.n AS batchIndex
,(CASE WHEN auftraege.artikelcode LIKE 'T%' THEN CAST(SUBSTRING(auftraege.artikelcode, 2) AS INT) ELSE CAST(auftraege.artikelcode AS INT) END) AS articleCode
,(CASE WHEN ISNULL(ems.Seriennummer) THEN auftraege.IX ELSE ems.Equi_index END) AS bomIndex
,(CASE WHEN ISNULL(ems.Seriennummer) THEN FALSE ELSE TRUE END) AS hasEmsUpdate
,stammdaten.bezeichnung AS description
,(CASE WHEN modulindex.modulindex = \"\" THEN NULL ELSE modulindex.modulindex END) AS moduleIndex
FROM sn
JOIN auftraege ON sn.produktionsauftrag = auftraege.produktionsauftrag
JOIN stammdaten ON auftraege.artikelcode = stammdaten.Artikelcode
LEFT JOIN ems ON sn.seriennummer = ems.Seriennummer
LEFT JOIN modulindex ON sn.seriennummer = modulindex.sn_lp
WHERE
sn.seriennummer in (@serialNumbers)
STATEMENTEND
```
parameters:
- name: serialNumbers
in: query
required: true
schema:
type: array
items:
type: integer
responses:
200:
description: Here are your pcbItem items
content:
application/json:
schema:
type: array
items:
$ref: "#/components/schemas/pcbItem"
400:
$ref: "#/components/responses/clientSideError"
500:
$ref: "#/components/responses/serverSideError"
components:
responses:
clientSideError:
description: There is something wrong with the data you sent, look into the response object for details
content:
application/json:
schema:
$ref: "#/components/schemas/errorResultObject"
serverSideError:
description: Internal Server Error, look into the response object for details
content:
application/json:
schema:
$ref: "#/components/schemas/errorResultObject"
schemas:
errorResultObject:
description: Object returned in case of an error
properties:
errorCode:
description: repeat the http error code
type: integer
serviceErrorCode:
description: service-specific error code
type: integer
errorMessage:
description: human-readable error message
type: string
errorInfoURL:
description: URL to some more information on the error
type: string
offensiveData:
description: Input data which causes this error
type: string
caughtException:
description: caught exception as a string
type: string
caughtExceptionMessage:
description: message of caught exception
type: string
# --------------------------------------------------------------------------------------------------
baseItem:
description: Selected columns of the stammdaten table from pdb_el
type: object
properties:
articleNumber:
type: string
nullable: true
category:
type: string
nullable: true
description:
type: string
# --------------------------------------------------------------------------------------------------
productionOrderItem:
description: Selected columns of the auftraege table from pdb_el
type: object
properties:
productionOrder:
type: integer
nullable: true
articleCode:
type: string
nullable: true
isAnonymous:
type: boolean
nullable: true
cgNumber:
type: string
nullable: true
numberOfPieces:
type: integer
nullable: true
bomIndex:
type: string
nullable: true
referenceDocument:
type: string
nullable: true
# --------------------------------------------------------------------------------------------------
converterItem:
description: converter items selected by serial number
type: object
properties:
serialNumber:
type: integer
nullable: true
productionOrder:
type: integer
nullable: true
snPcb1:
type: integer
nullable: true
snPcb2:
type: integer
nullable: true
snPcb3:
type: integer
nullable: true
snPcb4:
type: integer
nullable: true
snPcb5:
type: integer
nullable: true
snPcb6:
type: integer
nullable: true
snPcb7:
type: integer
nullable: true
snPcb8:
type: integer
nullable: true
snPcb9:
type: integer
nullable: true
snPcb10:
type: integer
nullable: true
erPlanned:
type: string
nullable: true
erProduced:
type: string
nullable: true
isRework:
type: boolean
nullable: true
articleCode:
type: string
nullable: true
isAnonymous:
type: boolean
nullable: true
cgNumber:
type: string
nullable: true
bomIndex:
type: string
nullable: true
hasEmsUpdate:
type: boolean
nullable: true
isTestConverter:
type: boolean
nullable: true
initialTestDate:
type: dateTime
nullable: true
initialTestResult:
type: boolean
nullable: true
hvTestDate:
type: dateTime
nullable: true
hvTestResult:
type: boolean
nullable: true
temperatureTestDate:
type: dateTime
nullable: true
temperatureTestResult:
type: boolean
nullable: true
calibrationDate:
type: dateTime
nullable: true
deliveryDate:
type: dateTime
nullable: true
# --------------------------------------------------------------------------------------------------
pcbItem:
description: pcb items selected by serial number
type: object
properties:
serialNumber:
type: integer
nullable: true
productionOrder:
type: integer
nullable: true
batchIndex:
type: integer
nullable: true
articleCode:
type: integer
format: int64
nullable: true
bomIndex:
type: string
nullable: true
hasEmsUpdate:
type: boolean
nullable: true
description:
type: string
nullable: true
moduleIndex:
type: string
nullable: true