fix: resolve SQL Server table name mapping and variable naming conflicts
- Fix getTableName() to handle generic schema_tablename pattern - Convert schema_tablename to [schema].[tablename] for SQL Server - Replace hardcoded productionContractData table name with helper function - Fix variable naming conflict: rename 'sql' to 'sqlString' to avoid shadowing mssql module import - Apply fixes to discrete-material-plan-dao, materials-to-be-deleted-dao, and bip-users-dao Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -84,16 +84,22 @@ async function getValidationDatabaseService(): Promise<MySqlService | SqlServerS
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Get table name based on database type
|
* Get table name based on database type
|
||||||
|
* Converts MySQL schema_tablename format to SQL Server [schema].[tablename] format
|
||||||
|
* e.g., productionContractData_26年压力表合同数据 -> [productionContractData].[26年压力表合同数据]
|
||||||
|
* dbo_MaterialsToBeDeleted -> [dbo].[MaterialsToBeDeleted]
|
||||||
*/
|
*/
|
||||||
function getTableName(mysqlTableName: string): string {
|
function getTableName(mysqlTableName: string): string {
|
||||||
const dbType = process.env.DB_TYPE?.toLowerCase()
|
const dbType = process.env.DB_TYPE?.toLowerCase()
|
||||||
if (dbType === 'sqlserver' || dbType === 'mssql') {
|
if (dbType === 'sqlserver' || dbType === 'mssql') {
|
||||||
// Convert MySQL table name to SQL Server format
|
// Find the FIRST underscore to split schema and table name
|
||||||
// e.g., dbo_MaterialsToBeDeleted -> [dbo].[MaterialsToBeDeleted]
|
// This handles patterns like: schema_tablename
|
||||||
if (mysqlTableName.startsWith('dbo_')) {
|
const firstUnderscoreIndex = mysqlTableName.indexOf('_')
|
||||||
const tableName = mysqlTableName.substring(4)
|
if (firstUnderscoreIndex > 0) {
|
||||||
return `[dbo].[${tableName}]`
|
const schema = mysqlTableName.substring(0, firstUnderscoreIndex)
|
||||||
|
const tableName = mysqlTableName.substring(firstUnderscoreIndex + 1)
|
||||||
|
return `[${schema}].[${tableName}]`
|
||||||
}
|
}
|
||||||
|
// If no underscore found, default to dbo schema
|
||||||
return `[dbo].[${mysqlTableName}]`
|
return `[dbo].[${mysqlTableName}]`
|
||||||
}
|
}
|
||||||
return mysqlTableName
|
return mysqlTableName
|
||||||
@@ -151,6 +157,8 @@ async function getSourceNumbersFromInputs(
|
|||||||
// Table name in MySQL: productionContractData_26年压力表合同数据
|
// Table name in MySQL: productionContractData_26年压力表合同数据
|
||||||
// Column name: 生产订单号 (SourceNumber)
|
// Column name: 生产订单号 (SourceNumber)
|
||||||
if (productionIds.length > 0) {
|
if (productionIds.length > 0) {
|
||||||
|
const contractTableName = getTableName('productionContractData_26年压力表合同数据')
|
||||||
|
|
||||||
if (isSqlServer) {
|
if (isSqlServer) {
|
||||||
const sql = require('mssql')
|
const sql = require('mssql')
|
||||||
const placeholders = productionIds.map((_, idx) => `@p${idx}`).join(',')
|
const placeholders = productionIds.map((_, idx) => `@p${idx}`).join(',')
|
||||||
@@ -162,7 +170,7 @@ async function getSourceNumbersFromInputs(
|
|||||||
|
|
||||||
const contractSql = `
|
const contractSql = `
|
||||||
SELECT DISTINCT 生产订单号
|
SELECT DISTINCT 生产订单号
|
||||||
FROM productionContractData_26年压力表合同数据
|
FROM ${contractTableName}
|
||||||
WHERE 总排号 IN (${placeholders})
|
WHERE 总排号 IN (${placeholders})
|
||||||
`
|
`
|
||||||
const contractResult = await (dbService as SqlServerService).queryWithParams(contractSql, params)
|
const contractResult = await (dbService as SqlServerService).queryWithParams(contractSql, params)
|
||||||
@@ -174,7 +182,7 @@ async function getSourceNumbersFromInputs(
|
|||||||
const placeholders = productionIds.map(() => '?').join(',')
|
const placeholders = productionIds.map(() => '?').join(',')
|
||||||
const contractSql = `
|
const contractSql = `
|
||||||
SELECT DISTINCT 生产订单号
|
SELECT DISTINCT 生产订单号
|
||||||
FROM productionContractData_26年压力表合同数据
|
FROM ${contractTableName}
|
||||||
WHERE 总排号 IN (${placeholders})
|
WHERE 总排号 IN (${placeholders})
|
||||||
`
|
`
|
||||||
const contractResult = await (dbService as MySqlService).query(contractSql, productionIds)
|
const contractResult = await (dbService as MySqlService).query(contractSql, productionIds)
|
||||||
|
|||||||
@@ -169,11 +169,11 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `SELECT * FROM ${tableName}`
|
const sqlString = `SELECT * FROM ${tableName}`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -193,7 +193,7 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
WITH RankedRecords AS (
|
WITH RankedRecords AS (
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
@@ -216,8 +216,8 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -255,24 +255,24 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE SourceNumber IN (${placeholders})
|
WHERE SourceNumber IN (${placeholders})
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, params)
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, params)
|
||||||
allResults.push(...result.rows)
|
allResults.push(...result.rows)
|
||||||
} else {
|
} else {
|
||||||
const placeholders = batch.map(() => '?').join(',')
|
const placeholders = batch.map(() => '?').join(',')
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE SourceNumber IN (${placeholders})
|
WHERE SourceNumber IN (${placeholders})
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, batch)
|
const result = await (dbService as MySqlService).query(sqlString, batch)
|
||||||
allResults.push(...result.rows)
|
allResults.push(...result.rows)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -313,7 +313,7 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
WITH RankedRecords AS (
|
WITH RankedRecords AS (
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
@@ -336,12 +336,12 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
WHERE rn = 1
|
WHERE rn = 1
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, params)
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, params)
|
||||||
allResults.push(...result.rows)
|
allResults.push(...result.rows)
|
||||||
} else {
|
} else {
|
||||||
const placeholders = batch.map(() => '?').join(',')
|
const placeholders = batch.map(() => '?').join(',')
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
WITH RankedRecords AS (
|
WITH RankedRecords AS (
|
||||||
SELECT
|
SELECT
|
||||||
*,
|
*,
|
||||||
@@ -364,7 +364,7 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
WHERE rn = 1
|
WHERE rn = 1
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, batch)
|
const result = await (dbService as MySqlService).query(sqlString, batch)
|
||||||
allResults.push(...result.rows)
|
allResults.push(...result.rows)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -387,25 +387,25 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE SourceNumber = @sourceNumber
|
WHERE SourceNumber = @sourceNumber
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
sourceNumber: { value: sourceNumber, type: sql.NVarChar }
|
sourceNumber: { value: sourceNumber, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE SourceNumber = ?
|
WHERE SourceNumber = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [sourceNumber])
|
const result = await (dbService as MySqlService).query(sqlString, [sourceNumber])
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
}
|
}
|
||||||
@@ -428,25 +428,25 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE PlanNumber = @planNumber
|
WHERE PlanNumber = @planNumber
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
planNumber: { value: planNumber, type: sql.NVarChar }
|
planNumber: { value: planNumber, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE PlanNumber = ?
|
WHERE PlanNumber = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [planNumber])
|
const result = await (dbService as MySqlService).query(sqlString, [planNumber])
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
}
|
}
|
||||||
@@ -478,24 +478,24 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE PlanNumber IN (${placeholders})
|
WHERE PlanNumber IN (${placeholders})
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, params)
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, params)
|
||||||
return result.rows
|
return result.rows
|
||||||
} else {
|
} else {
|
||||||
const placeholders = planNumbers.map(() => '?').join(',')
|
const placeholders = planNumbers.map(() => '?').join(',')
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT *
|
SELECT *
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE PlanNumber IN (${placeholders})
|
WHERE PlanNumber IN (${placeholders})
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, planNumbers)
|
const result = await (dbService as MySqlService).query(sqlString, planNumbers)
|
||||||
return result.rows
|
return result.rows
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -515,11 +515,11 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `SELECT COUNT(*) as count FROM ${tableName}`
|
const sqlString = `SELECT COUNT(*) as count FROM ${tableName}`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -539,25 +539,25 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE PlanNumber = @planNumber
|
WHERE PlanNumber = @planNumber
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
planNumber: { value: planNumber, type: sql.NVarChar }
|
planNumber: { value: planNumber, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE PlanNumber = ?
|
WHERE PlanNumber = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [planNumber])
|
const result = await (dbService as MySqlService).query(sqlString, [planNumber])
|
||||||
|
|
||||||
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
||||||
}
|
}
|
||||||
@@ -586,42 +586,42 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
params[`p${idx}`] = { value: num, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT DISTINCT MaterialName
|
SELECT DISTINCT MaterialName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE SourceNumber IN (${placeholders})
|
WHERE SourceNumber IN (${placeholders})
|
||||||
AND MaterialName IS NOT NULL
|
AND MaterialName IS NOT NULL
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, params)
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, params)
|
||||||
return result.rows
|
return result.rows
|
||||||
.map(row => row.MaterialName as string)
|
.map(row => row.MaterialName as string)
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
} else {
|
} else {
|
||||||
const placeholders = sourceNumbers.map(() => '?').join(',')
|
const placeholders = sourceNumbers.map(() => '?').join(',')
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT DISTINCT MaterialName
|
SELECT DISTINCT MaterialName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE SourceNumber IN (${placeholders})
|
WHERE SourceNumber IN (${placeholders})
|
||||||
AND MaterialName IS NOT NULL
|
AND MaterialName IS NOT NULL
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, sourceNumbers)
|
const result = await (dbService as MySqlService).query(sqlString, sourceNumbers)
|
||||||
return result.rows
|
return result.rows
|
||||||
.map(row => row.MaterialName as string)
|
.map(row => row.MaterialName as string)
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT DISTINCT MaterialName
|
SELECT DISTINCT MaterialName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialName IS NOT NULL
|
WHERE MaterialName IS NOT NULL
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows
|
return result.rows
|
||||||
.map(row => row.MaterialName as string)
|
.map(row => row.MaterialName as string)
|
||||||
@@ -642,7 +642,7 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT
|
SELECT
|
||||||
COUNT(*) as totalRecords,
|
COUNT(*) as totalRecords,
|
||||||
COUNT(DISTINCT PlanNumber) as uniquePlans,
|
COUNT(DISTINCT PlanNumber) as uniquePlans,
|
||||||
@@ -653,8 +653,8 @@ export class DiscreteMaterialPlanDAO {
|
|||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows.length > 0 ? result.rows[0] : {}
|
return result.rows.length > 0 ? result.rows[0] : {}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -143,7 +143,7 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const manager = managerName?.trim() || null
|
const manager = managerName?.trim() || null
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
MERGE ${tableName} AS target
|
MERGE ${tableName} AS target
|
||||||
USING (VALUES (@materialCode, @managerName)) AS source (MaterialCode, ManagerName)
|
USING (VALUES (@materialCode, @managerName)) AS source (MaterialCode, ManagerName)
|
||||||
ON target.MaterialCode = source.MaterialCode
|
ON target.MaterialCode = source.MaterialCode
|
||||||
@@ -151,18 +151,18 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
WHEN NOT MATCHED THEN INSERT (MaterialCode, ManagerName) VALUES (source.MaterialCode, source.ManagerName);
|
WHEN NOT MATCHED THEN INSERT (MaterialCode, ManagerName) VALUES (source.MaterialCode, source.ManagerName);
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as SqlServerService).queryWithParams(sql, {
|
await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
materialCode: { value: code, type: sql.NVarChar },
|
materialCode: { value: code, type: sql.NVarChar },
|
||||||
managerName: { value: manager, type: sql.NVarChar }
|
managerName: { value: manager, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
INSERT INTO ${tableName} (MaterialCode, ManagerName)
|
INSERT INTO ${tableName} (MaterialCode, ManagerName)
|
||||||
VALUES (?, ?)
|
VALUES (?, ?)
|
||||||
ON DUPLICATE KEY UPDATE ManagerName = VALUES(ManagerName)
|
ON DUPLICATE KEY UPDATE ManagerName = VALUES(ManagerName)
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as MySqlService).query(sql, [code, manager])
|
await (dbService as MySqlService).query(sqlString, [code, manager])
|
||||||
}
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
@@ -203,7 +203,7 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
MERGE ${tableName} AS target
|
MERGE ${tableName} AS target
|
||||||
USING (VALUES (@materialCode, @managerName)) AS source (MaterialCode, ManagerName)
|
USING (VALUES (@materialCode, @managerName)) AS source (MaterialCode, ManagerName)
|
||||||
ON target.MaterialCode = source.MaterialCode
|
ON target.MaterialCode = source.MaterialCode
|
||||||
@@ -211,18 +211,18 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
WHEN NOT MATCHED THEN INSERT (MaterialCode, ManagerName) VALUES (source.MaterialCode, source.ManagerName);
|
WHEN NOT MATCHED THEN INSERT (MaterialCode, ManagerName) VALUES (source.MaterialCode, source.ManagerName);
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as SqlServerService).queryWithParams(sql, {
|
await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
materialCode: { value: materialCode, type: sql.NVarChar },
|
materialCode: { value: materialCode, type: sql.NVarChar },
|
||||||
managerName: { value: managerName || null, type: sql.NVarChar }
|
managerName: { value: managerName || null, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
INSERT INTO ${tableName} (MaterialCode, ManagerName)
|
INSERT INTO ${tableName} (MaterialCode, ManagerName)
|
||||||
VALUES (?, ?)
|
VALUES (?, ?)
|
||||||
ON DUPLICATE KEY UPDATE ManagerName = VALUES(ManagerName)
|
ON DUPLICATE KEY UPDATE ManagerName = VALUES(ManagerName)
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as MySqlService).query(sql, [materialCode, managerName || null])
|
await (dbService as MySqlService).query(sqlString, [materialCode, managerName || null])
|
||||||
}
|
}
|
||||||
|
|
||||||
stats.success++
|
stats.success++
|
||||||
@@ -250,15 +250,15 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT MaterialCode
|
SELECT MaterialCode
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialCode IS NOT NULL
|
WHERE MaterialCode IS NOT NULL
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return new Set(result.rows.map(row => row.MaterialCode as string).filter(Boolean))
|
return new Set(result.rows.map(row => row.MaterialCode as string).filter(Boolean))
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -276,7 +276,7 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, MaterialCode, ManagerName
|
SELECT ID, MaterialCode, ManagerName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialCode IS NOT NULL
|
WHERE MaterialCode IS NOT NULL
|
||||||
@@ -284,8 +284,8 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows.map(row => ({
|
return result.rows.map(row => ({
|
||||||
id: row.ID as number,
|
id: row.ID as number,
|
||||||
@@ -309,14 +309,14 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, MaterialCode, ManagerName
|
SELECT ID, MaterialCode, ManagerName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ManagerName = @managerName AND MaterialCode IS NOT NULL
|
WHERE ManagerName = @managerName AND MaterialCode IS NOT NULL
|
||||||
ORDER BY MaterialCode
|
ORDER BY MaterialCode
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
managerName: { value: managerName, type: sql.NVarChar }
|
managerName: { value: managerName, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -326,14 +326,14 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
managerName: row.ManagerName as string
|
managerName: row.ManagerName as string
|
||||||
}))
|
}))
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, MaterialCode, ManagerName
|
SELECT ID, MaterialCode, ManagerName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ManagerName = ? AND MaterialCode IS NOT NULL
|
WHERE ManagerName = ? AND MaterialCode IS NOT NULL
|
||||||
ORDER BY MaterialCode
|
ORDER BY MaterialCode
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [managerName])
|
const result = await (dbService as MySqlService).query(sqlString, [managerName])
|
||||||
|
|
||||||
return result.rows.map(row => ({
|
return result.rows.map(row => ({
|
||||||
id: row.ID as number,
|
id: row.ID as number,
|
||||||
@@ -356,7 +356,7 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT DISTINCT ManagerName
|
SELECT DISTINCT ManagerName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ManagerName IS NOT NULL
|
WHERE ManagerName IS NOT NULL
|
||||||
@@ -364,8 +364,8 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows.map(row => row.ManagerName as string).filter(Boolean)
|
return result.rows.map(row => row.ManagerName as string).filter(Boolean)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -386,13 +386,13 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const code = materialCode.trim()
|
const code = materialCode.trim()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, MaterialCode, ManagerName
|
SELECT ID, MaterialCode, ManagerName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialCode = @materialCode
|
WHERE MaterialCode = @materialCode
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
materialCode: { value: code, type: sql.NVarChar }
|
materialCode: { value: code, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -407,13 +407,13 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
managerName: row.ManagerName as string
|
managerName: row.ManagerName as string
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, MaterialCode, ManagerName
|
SELECT ID, MaterialCode, ManagerName
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialCode = ?
|
WHERE MaterialCode = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [code])
|
const result = await (dbService as MySqlService).query(sqlString, [code])
|
||||||
|
|
||||||
if (result.rows.length === 0) {
|
if (result.rows.length === 0) {
|
||||||
return null
|
return null
|
||||||
@@ -446,23 +446,23 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const code = materialCode.trim()
|
const code = materialCode.trim()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE MaterialCode = @materialCode
|
WHERE MaterialCode = @materialCode
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
materialCode: { value: code, type: sql.NVarChar }
|
materialCode: { value: code, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rowCount > 0
|
return result.rowCount > 0
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE MaterialCode = ?
|
WHERE MaterialCode = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [code])
|
const result = await (dbService as MySqlService).query(sqlString, [code])
|
||||||
|
|
||||||
return result.rowCount > 0
|
return result.rowCount > 0
|
||||||
}
|
}
|
||||||
@@ -483,23 +483,23 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE ManagerName = @managerName
|
WHERE ManagerName = @managerName
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
managerName: { value: managerName, type: sql.NVarChar }
|
managerName: { value: managerName, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rowCount
|
return result.rowCount
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE ManagerName = ?
|
WHERE ManagerName = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [managerName])
|
const result = await (dbService as MySqlService).query(sqlString, [managerName])
|
||||||
|
|
||||||
return result.rowCount
|
return result.rowCount
|
||||||
}
|
}
|
||||||
@@ -518,11 +518,11 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `DELETE FROM ${tableName}`
|
const sqlString = `DELETE FROM ${tableName}`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rowCount
|
return result.rowCount
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -559,22 +559,22 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
params[`p${idx}`] = { value: code.trim(), type: sql.NVarChar }
|
params[`p${idx}`] = { value: code.trim(), type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE MaterialCode IN (${placeholders})
|
WHERE MaterialCode IN (${placeholders})
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, params)
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, params)
|
||||||
totalDeleted += result.rowCount
|
totalDeleted += result.rowCount
|
||||||
} else {
|
} else {
|
||||||
const placeholders = batch.map(() => '?').join(',')
|
const placeholders = batch.map(() => '?').join(',')
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE MaterialCode IN (${placeholders})
|
WHERE MaterialCode IN (${placeholders})
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, batch)
|
const result = await (dbService as MySqlService).query(sqlString, batch)
|
||||||
totalDeleted += result.rowCount
|
totalDeleted += result.rowCount
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -599,25 +599,25 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const code = materialCode.trim()
|
const code = materialCode.trim()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialCode = @materialCode
|
WHERE MaterialCode = @materialCode
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
materialCode: { value: code, type: sql.NVarChar }
|
materialCode: { value: code, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE MaterialCode = ?
|
WHERE MaterialCode = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [code])
|
const result = await (dbService as MySqlService).query(sqlString, [code])
|
||||||
|
|
||||||
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
||||||
}
|
}
|
||||||
@@ -636,11 +636,11 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `SELECT COUNT(*) as count FROM ${tableName}`
|
const sqlString = `SELECT COUNT(*) as count FROM ${tableName}`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -660,25 +660,25 @@ export class MaterialsToBeDeletedDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ManagerName = @managerName
|
WHERE ManagerName = @managerName
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
managerName: { value: managerName, type: sql.NVarChar }
|
managerName: { value: managerName, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ManagerName = ?
|
WHERE ManagerName = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [managerName])
|
const result = await (dbService as MySqlService).query(sqlString, [managerName])
|
||||||
|
|
||||||
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
return result.rows.length > 0 ? (result.rows[0].count as number) : 0
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,13 +114,13 @@ export class BIPUsersDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, UserName, UserType
|
SELECT ID, UserName, UserType
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE UserName = @username AND Password = @password
|
WHERE UserName = @username AND Password = @password
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
username: { value: username, type: sql.NVarChar },
|
username: { value: username, type: sql.NVarChar },
|
||||||
password: { value: password, type: sql.NVarChar }
|
password: { value: password, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
@@ -135,13 +135,13 @@ export class BIPUsersDAO {
|
|||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, UserName, UserType
|
SELECT ID, UserName, UserType
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE UserName = ? AND Password = ?
|
WHERE UserName = ? AND Password = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [username, password])
|
const result = await (dbService as MySqlService).query(sqlString, [username, password])
|
||||||
|
|
||||||
if (result.rows.length > 0) {
|
if (result.rows.length > 0) {
|
||||||
const row = result.rows[0]
|
const row = result.rows[0]
|
||||||
@@ -170,13 +170,13 @@ export class BIPUsersDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, UserName, UserType
|
SELECT ID, UserName, UserType
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ComputerNmae = @computerName
|
WHERE ComputerNmae = @computerName
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
computerName: { value: computerName, type: sql.NVarChar }
|
computerName: { value: computerName, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -190,13 +190,13 @@ export class BIPUsersDAO {
|
|||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, UserName, UserType
|
SELECT ID, UserName, UserType
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE ComputerNmae = ?
|
WHERE ComputerNmae = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [computerName])
|
const result = await (dbService as MySqlService).query(sqlString, [computerName])
|
||||||
|
|
||||||
if (result.rows.length > 0) {
|
if (result.rows.length > 0) {
|
||||||
const row = result.rows[0]
|
const row = result.rows[0]
|
||||||
@@ -223,15 +223,15 @@ export class BIPUsersDAO {
|
|||||||
const dbService = await this.getDatabaseService()
|
const dbService = await this.getDatabaseService()
|
||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT ID, UserName, UserType, CreateTime
|
SELECT ID, UserName, UserType, CreateTime
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
ORDER BY UserName
|
ORDER BY UserName
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = this.dbType === 'sqlserver'
|
const result = this.dbType === 'sqlserver'
|
||||||
? await (dbService as SqlServerService).query(sql)
|
? await (dbService as SqlServerService).query(sqlString)
|
||||||
: await (dbService as MySqlService).query(sql)
|
: await (dbService as MySqlService).query(sqlString)
|
||||||
|
|
||||||
return result.rows.map(row => ({
|
return result.rows.map(row => ({
|
||||||
id: row.ID as number,
|
id: row.ID as number,
|
||||||
@@ -292,7 +292,7 @@ export class BIPUsersDAO {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await (dbService as SqlServerService).queryWithParams(sql, params)
|
await (dbService as SqlServerService).queryWithParams(sqlString, params)
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
let sql: string
|
let sql: string
|
||||||
@@ -314,7 +314,7 @@ export class BIPUsersDAO {
|
|||||||
params = [username, password, userType]
|
params = [username, password, userType]
|
||||||
}
|
}
|
||||||
|
|
||||||
await (dbService as MySqlService).query(sql, params)
|
await (dbService as MySqlService).query(sqlString, params)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -335,25 +335,25 @@ export class BIPUsersDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
UPDATE ${tableName}
|
UPDATE ${tableName}
|
||||||
SET UserType = @userType
|
SET UserType = @userType
|
||||||
WHERE UserName = @username
|
WHERE UserName = @username
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as SqlServerService).queryWithParams(sql, {
|
await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
username: { value: username, type: sql.NVarChar },
|
username: { value: username, type: sql.NVarChar },
|
||||||
userType: { value: userType, type: sql.NVarChar }
|
userType: { value: userType, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
UPDATE ${tableName}
|
UPDATE ${tableName}
|
||||||
SET UserType = ?
|
SET UserType = ?
|
||||||
WHERE UserName = ?
|
WHERE UserName = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as MySqlService).query(sql, [userType, username])
|
await (dbService as MySqlService).query(sqlString, [userType, username])
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -374,25 +374,25 @@ export class BIPUsersDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
UPDATE ${tableName}
|
UPDATE ${tableName}
|
||||||
SET Password = @newPassword
|
SET Password = @newPassword
|
||||||
WHERE UserName = @username
|
WHERE UserName = @username
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as SqlServerService).queryWithParams(sql, {
|
await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
username: { value: username, type: sql.NVarChar },
|
username: { value: username, type: sql.NVarChar },
|
||||||
newPassword: { value: newPassword, type: sql.NVarChar }
|
newPassword: { value: newPassword, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
UPDATE ${tableName}
|
UPDATE ${tableName}
|
||||||
SET Password = ?
|
SET Password = ?
|
||||||
WHERE UserName = ?
|
WHERE UserName = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as MySqlService).query(sql, [newPassword, username])
|
await (dbService as MySqlService).query(sqlString, [newPassword, username])
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -412,22 +412,22 @@ export class BIPUsersDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE UserName = @username
|
WHERE UserName = @username
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as SqlServerService).queryWithParams(sql, {
|
await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
username: { value: username, type: sql.NVarChar }
|
username: { value: username, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
DELETE FROM ${tableName}
|
DELETE FROM ${tableName}
|
||||||
WHERE UserName = ?
|
WHERE UserName = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
await (dbService as MySqlService).query(sql, [username])
|
await (dbService as MySqlService).query(sqlString, [username])
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@@ -447,24 +447,24 @@ export class BIPUsersDAO {
|
|||||||
const tableName = this.getTableName()
|
const tableName = this.getTableName()
|
||||||
|
|
||||||
if (this.dbType === 'sqlserver') {
|
if (this.dbType === 'sqlserver') {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE UserName = @username
|
WHERE UserName = @username
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as SqlServerService).queryWithParams(sql, {
|
const result = await (dbService as SqlServerService).queryWithParams(sqlString, {
|
||||||
username: { value: username, type: sql.NVarChar }
|
username: { value: username, type: sql.NVarChar }
|
||||||
})
|
})
|
||||||
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
||||||
} else {
|
} else {
|
||||||
const sql = `
|
const sqlString = `
|
||||||
SELECT COUNT(*) as count
|
SELECT COUNT(*) as count
|
||||||
FROM ${tableName}
|
FROM ${tableName}
|
||||||
WHERE UserName = ?
|
WHERE UserName = ?
|
||||||
`
|
`
|
||||||
|
|
||||||
const result = await (dbService as MySqlService).query(sql, [username])
|
const result = await (dbService as MySqlService).query(sqlString, [username])
|
||||||
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
return result.rows.length > 0 && (result.rows[0].count as number) > 0
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user