| | |
| | | */ |
| | | static getDebugSql (setting, scripts, columns, searches = []) { |
| | | let sql = '' |
| | | let error = '' |
| | | let _dataresource = '' |
| | | let _customScript = '' |
| | | let arr_field = columns.map(item => item.field).join(',') |
| | |
| | | }) |
| | | } |
| | | |
| | | if (_customScript) { |
| | | _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000) select @ErrorCode='',@retmsg ='' |
| | | ${_customScript} |
| | | ` |
| | | } |
| | | |
| | | if (setting.interType === 'system' && setting.execute !== 'false') { |
| | | _dataresource = setting.dataresource |
| | | } |
| | |
| | | if (_customScript) { |
| | | _customScript = _customScript.replace(/@\$|\$@/ig, '') |
| | | } |
| | | |
| | | if (_customScript) { |
| | | _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000) select @ErrorCode='',@retmsg ='' |
| | | ${_customScript} |
| | | ` |
| | | } |
| | | |
| | | // 正则替换 |
| | | let _regoptions = searches.map(item => { |
| | | return { |
| | | reg: new RegExp('@' + item.key + '@', 'ig'), |
| | | value: `'${item.value}'` |
| | | let _regoptions = [] |
| | | let _fields = [] |
| | | |
| | | searches.forEach(item => { |
| | | if (item.datefield) { |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.datefield, 'ig'), |
| | | reg: new RegExp('@' + item.datefield + '@', 'ig') |
| | | }) |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.datefield + '1', 'ig'), |
| | | reg: new RegExp('@' + item.datefield + '1@', 'ig') |
| | | }) |
| | | } |
| | | if (['dateweek', 'datemonth', 'daterange'].includes(item.type)) { |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.field, 'ig'), |
| | | reg: new RegExp('@' + item.field + '@', 'ig') |
| | | }) |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.field + '1', 'ig'), |
| | | reg: new RegExp('@' + item.field + '1@', 'ig') |
| | | }) |
| | | } else if (item.type === 'date') { |
| | | if (_fields.includes(item.field)) { |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.field + '1', 'ig'), |
| | | reg: new RegExp('@' + item.field + '1@', 'ig') |
| | | }) |
| | | } else { |
| | | _fields.push(item.field) |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.field, 'ig'), |
| | | reg: new RegExp('@' + item.field + '@', 'ig') |
| | | }) |
| | | } |
| | | } else { |
| | | _regoptions.push({ |
| | | var: new RegExp('@' + item.field, 'ig'), |
| | | reg: new RegExp('@' + item.field + '@', 'ig') |
| | | }) |
| | | } |
| | | }) |
| | | let _search = '' |
| | | |
| | | // 日历中的年份替换 |
| | | if (setting.queryType === 'statistics' || _customScript) { |
| | | _regoptions.push({ |
| | | reg: new RegExp('@calendarDate@', 'ig'), |
| | | value: `1970-01-01 00:00:00.000` |
| | | }) |
| | | _regoptions.push({ |
| | | reg: new RegExp('@calendarDate1@', 'ig'), |
| | | value: `2030-12-31 23:59:59.999` |
| | | }) |
| | | } |
| | | let _search = '' |
| | | |
| | | if (setting.queryType === 'statistics' && _dataresource) { |
| | | _regoptions.forEach(item => { |
| | | _dataresource = _dataresource.replace(item.reg, item.value) |
| | | _dataresource = _dataresource.replace(item.reg, '0') |
| | | }) |
| | | |
| | | _search = '' |
| | | } |
| | | |
| | | let originscript = _customScript |
| | | |
| | | if (_customScript) { |
| | | _regoptions.push({ |
| | | var: new RegExp('@orderBy', 'ig'), |
| | | reg: new RegExp('@orderBy@', 'ig'), |
| | | value: setting.order |
| | | }) |
| | | if (setting.laypage !== 'false') { |
| | | _regoptions.push({ |
| | | var: new RegExp('@pageSize', 'ig'), |
| | | reg: new RegExp('@pageSize@', 'ig'), |
| | | value: 10 |
| | | }, { |
| | | var: new RegExp('@pageIndex', 'ig'), |
| | | reg: new RegExp('@pageIndex@', 'ig'), |
| | | value: 1 |
| | | }) |
| | | } |
| | | _regoptions.forEach(item => { |
| | | _customScript = _customScript.replace(item.reg, item.value) |
| | | _customScript = _customScript.replace(item.reg, '0') |
| | | originscript = originscript.replace(item.reg, '0') |
| | | originscript = originscript.replace(item.var, '0') |
| | | }) |
| | | |
| | | if (setting.varMark) { |
| | | originscript = originscript.replace(/@ErrorCode/ig, '') |
| | | originscript = originscript.replace(/@retmsg/ig, '') |
| | | originscript = originscript.replace(/@id@/ig, '').replace(/@id/ig, '') |
| | | originscript = originscript.replace(/@bid@/ig, '').replace(/@bid/ig, '') |
| | | originscript = originscript.replace(/@loginuid@/ig, '').replace(/@loginuid/ig, '') |
| | | originscript = originscript.replace(/@sessionuid@/ig, '').replace(/@sessionuid/ig, '') |
| | | originscript = originscript.replace(/@userid@/ig, '').replace(/@userid/ig, '') |
| | | originscript = originscript.replace(/@appkey@/ig, '').replace(/@appkey/ig, '') |
| | | originscript = originscript.replace(/@time_id@/ig, '').replace(/@time_id/ig, '') |
| | | |
| | | originscript = originscript.replace(new RegExp('@' + setting.varMark, 'ig'), '') |
| | | |
| | | if (/@/ig.test(originscript)) { |
| | | error = '使用了变量标识外的字段!' |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 数据源处理, 存在显示列时 |
| | |
| | | sql = _dataresource |
| | | } |
| | | |
| | | return sql |
| | | return { error, sql } |
| | | } |
| | | } |