forked from VinokurovVE/tests
Update
This commit is contained in:
@ -62,17 +62,17 @@ router.get('/objects/list', async (req: Request, res: Response) => {
|
||||
if (type) {
|
||||
const result = await tediousQuery(
|
||||
`
|
||||
SELECT
|
||||
SELECT
|
||||
*
|
||||
FROM
|
||||
FROM
|
||||
vObjects
|
||||
WHERE
|
||||
vObjects.id_city = ${city_id}
|
||||
WHERE
|
||||
vObjects.id_city = ${city_id}
|
||||
AND vObjects.year = ${year}
|
||||
AND type = ${type}
|
||||
AND
|
||||
(
|
||||
CASE
|
||||
AND
|
||||
(
|
||||
CASE
|
||||
WHEN TRY_CAST(vObjects.planning AS BIT) IS NOT NULL THEN TRY_CAST(vObjects.planning AS BIT)
|
||||
WHEN vObjects.planning = 'TRUE' THEN 1
|
||||
WHEN vObjects.planning = 'FALSE' THEN 0
|
||||
@ -91,12 +91,12 @@ router.get('/objects/list', async (req: Request, res: Response) => {
|
||||
COUNT(vObjects.type) AS count
|
||||
FROM
|
||||
vObjects
|
||||
JOIN
|
||||
JOIN
|
||||
tTypes ON vObjects.type = tTypes.id
|
||||
WHERE
|
||||
vObjects.id_city = ${city_id} AND vObjects.year = ${year}
|
||||
AND
|
||||
(
|
||||
AND
|
||||
(
|
||||
CASE
|
||||
WHEN TRY_CAST(vObjects.planning AS BIT) IS NOT NULL THEN TRY_CAST(vObjects.planning AS BIT)
|
||||
WHEN vObjects.planning = 'TRUE' THEN 1
|
||||
@ -144,7 +144,17 @@ router.get('/values/all', async (req: Request, res: Response) => {
|
||||
|
||||
const result = await tediousQuery(
|
||||
`
|
||||
SELECT * FROM nGeneral..tValues
|
||||
SELECT
|
||||
id_object,
|
||||
id_param,
|
||||
CAST(v.value AS varchar(max)) AS value,
|
||||
date_s,
|
||||
date_po,
|
||||
id_user
|
||||
FROM
|
||||
nGeneral..tValues v
|
||||
JOIN
|
||||
nGeneral..tParameters p ON v.id_param = p.id
|
||||
WHERE id_object = '${object_id}'
|
||||
`
|
||||
)
|
||||
@ -176,10 +186,21 @@ router.get('/params/all', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
const tcbParamQuery = (vtable: string, id_city: string) => {
|
||||
switch (vtable) {
|
||||
case 'vStreets':
|
||||
return `SELECT * FROM nGeneral..${vtable} WHERE id_city = ${id_city};`
|
||||
case 'vBoilers':
|
||||
return `SELECT * FROM nGeneral..${vtable} WHERE id_city = ${id_city};`
|
||||
default:
|
||||
return `SELECT * FROM nGeneral..${vtable};`
|
||||
}
|
||||
}
|
||||
|
||||
// Get value from TCB parameter
|
||||
router.get('/params/tcb', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { vtable, id, offset, limit } = req.query
|
||||
const { vtable, id, offset, limit, id_city } = req.query
|
||||
|
||||
if (!vtable) {
|
||||
res.status(500)
|
||||
@ -195,12 +216,13 @@ router.get('/params/tcb', async (req: Request, res: Response) => {
|
||||
res.status(200).json(result)
|
||||
} else {
|
||||
const result = await tediousQuery(
|
||||
`
|
||||
SELECT * FROM nGeneral..${vtable}
|
||||
ORDER BY object_id
|
||||
OFFSET ${Number(offset) || 0} ROWS
|
||||
FETCH NEXT ${Number(limit) || 10} ROWS ONLY;
|
||||
`
|
||||
// `
|
||||
// SELECT * FROM nGeneral..${vtable}
|
||||
// ORDER BY id
|
||||
// OFFSET ${Number(offset) || 0} ROWS
|
||||
// FETCH NEXT ${Number(limit) || 10} ROWS ONLY;
|
||||
// `
|
||||
tcbParamQuery(vtable as string, id_city as string)
|
||||
)
|
||||
res.status(200).json(result)
|
||||
}
|
||||
@ -209,4 +231,47 @@ router.get('/params/tcb', async (req: Request, res: Response) => {
|
||||
}
|
||||
})
|
||||
|
||||
router.get('/search/objects', async (req: Request, res: Response) => {
|
||||
try {
|
||||
const { q, id_city, year } = req.query
|
||||
|
||||
if (q && id_city && year) {
|
||||
const result = await tediousQuery(
|
||||
`
|
||||
WITH RankedValues AS (
|
||||
SELECT
|
||||
id_object,
|
||||
date_s,
|
||||
CAST(value AS varchar(max)) AS value,
|
||||
ROW_NUMBER() OVER (PARTITION BY id_object ORDER BY date_s DESC) AS rn,
|
||||
o.id_city AS id_city,
|
||||
o.year AS year
|
||||
FROM nGeneral..tValues
|
||||
JOIN nGeneral..tObjects o ON o.id = id_object
|
||||
WHERE CAST(value AS varchar(max)) LIKE '%${q}%'
|
||||
)
|
||||
SELECT
|
||||
id_object,
|
||||
date_s,
|
||||
value,
|
||||
id_city,
|
||||
year
|
||||
FROM RankedValues
|
||||
WHERE rn = 1 AND id_city = ${id_city} AND year = ${year};
|
||||
`
|
||||
)
|
||||
|
||||
res.status(200).json(result)
|
||||
} else {
|
||||
res.status(400).json("Bad request")
|
||||
}
|
||||
|
||||
} catch (err) {
|
||||
res.status(500).json({
|
||||
message: "Error",
|
||||
error: err
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
export default router
|
Reference in New Issue
Block a user