From 6e7e09300fdbe74e7cb453a80d2de42caf54b39c Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期五, 15 三月 2024 09:50:21 +0800
Subject: [PATCH] 2024-03-15
---
src/templates/sharecomponent/actioncomponent/verifyexcelout/utils.jsx | 237 ++++++++++++++---------------------------------------------
1 files changed, 56 insertions(+), 181 deletions(-)
diff --git a/src/templates/sharecomponent/actioncomponent/verifyexcelout/utils.jsx b/src/templates/sharecomponent/actioncomponent/verifyexcelout/utils.jsx
index 4b4fbe2..7df803d 100644
--- a/src/templates/sharecomponent/actioncomponent/verifyexcelout/utils.jsx
+++ b/src/templates/sharecomponent/actioncomponent/verifyexcelout/utils.jsx
@@ -1,19 +1,17 @@
-import moment from 'moment'
+import { formatSearch, getSearchRegs, joinMainSearchkey } from '@/utils/utils-custom.js'
export default class SettingUtils {
/**
* @description 鐢熸垚椤甸潰鏌ヨ璇彞
*/
- static getDebugSql (verify, scripts, searches, Utils) {
+ static getDebugSql (verify, scripts, searches) {
let sql = ''
let _dataresource = verify.dataresource || ''
- let regoptions = this.getRegOptions(searches)
- let _search = this.formatSearch(searches)
- _search = Utils.joinMainSearchkey(_search)
+ let _search = formatSearch(searches)
+ let regoptions = getSearchRegs(_search)
- _search = _search.replace(/@\$@/ig, '')
- _search = _search ? 'where ' + _search : ''
+ _search = joinMainSearchkey(_search)
let arr_field = []
verify.columns.forEach(item => {
@@ -23,60 +21,39 @@
})
arr_field = arr_field.join(',')
+ if (!arr_field) {
+ arr_field = '*'
+ }
+
let _customScript = ''
+ let _tailScript = ''
scripts && scripts.forEach(script => {
if (script.status === 'false') return
- _customScript += `
- ${script.sql}
- `
+ if (script.position !== 'back') {
+ _customScript += `
+ ${script.sql}
+ `
+ } else {
+ _tailScript += `
+ ${script.sql}
+ `
+ }
})
- if (_customScript) {
- _customScript = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50) select @ErrorCode='',@retmsg =''
- ${_customScript}
- `
- }
+ let declare = `declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(512),@mk_organization nvarchar(512),@mk_user_type nvarchar(20),@mk_nation nvarchar(50),@mk_province nvarchar(50),@mk_city nvarchar(50),@mk_district nvarchar(50),@mk_address nvarchar(100) select @ErrorCode='',@retmsg ='',@UserName='', @FullName='', @RoleID='', @mk_departmentcode='', @mk_organization='', @mk_user_type='', @mk_nation='', @mk_province='', @mk_city='', @mk_district='', @mk_address=''`
if (verify.defaultSql === 'false') {
_dataresource = ''
}
- if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
- window.GLOB.funcs.forEach(item => {
- let reg = new RegExp('\\$ex@' + item.func_code + '@ex\\$', 'ig')
- _dataresource = _dataresource.replace(reg, `/*$ex@${item.func_code}-begin*/\n${item.key_sql}\n/*@ex$-end*/`)
- _customScript = _customScript.replace(reg, `/*$ex@${item.func_code}-begin*/\n${item.key_sql}\n/*@ex$-end*/`)
- })
+ if (/\s/.test(_dataresource)) {
+ _dataresource = '(' + _dataresource + ') tb'
}
-
- _dataresource = _dataresource.replace(/@\$|\$@/ig, '')
- _customScript = _customScript.replace(/@\$|\$@/ig, '')
- // 澶栬仈鏁版嵁搴撴浛鎹�
- if (window.GLOB.externalDatabase !== null) {
- _dataresource = _dataresource.replace(/@db@/ig, window.GLOB.externalDatabase)
- _customScript = _customScript.replace(/@db@/ig, window.GLOB.externalDatabase)
- }
+ let custompage = /@pageSize@|@orderBy@/i.test(_dataresource + _customScript)
// 姝e垯鏇挎崲
- let _regoptions = regoptions.map(item => {
- return {
- reg: new RegExp('@' + item.key + '@', 'ig'),
- value: `'0'`,
- type: item.type || ''
- }
- })
-
- _regoptions.push({
- reg: new RegExp('@login_city@', 'ig'),
- value: `''`
- }, {
- reg: new RegExp('@userName@', 'ig'),
- value: `''`
- }, {
- reg: new RegExp('@fullName@', 'ig'),
- value: `''`
- }, {
+ regoptions.push({
reg: new RegExp('@orderBy@', 'ig'),
value: verify.order
}, {
@@ -85,160 +62,58 @@
}, {
reg: new RegExp('@pageIndex@', 'ig'),
value: 1
+ }, {
+ reg: /@datam@/ig,
+ value: `''`
+ }, {
+ reg: /@typename@/ig,
+ value: `'debug'`
+ }, {
+ reg: /@\$|\$@/ig,
+ value: ''
+ })
+
+ regoptions.forEach(item => {
+ _dataresource = _dataresource.replace(item.reg, item.value)
+ _customScript = _customScript.replace(item.reg, item.value)
+ _tailScript = _tailScript.replace(item.reg, item.value)
})
if (verify.queryType === 'statistics' && _dataresource) {
- _regoptions.forEach(item => {
- _dataresource = _dataresource.replace(item.reg, item.value)
- })
_search = ''
- } else if (_dataresource) {
- _regoptions.forEach(item => {
- if (item.type !== 'url') return
- _dataresource = _dataresource.replace(item.reg, item.value)
- })
}
- if (_customScript) {
- _regoptions.forEach(item => {
- _customScript = _customScript.replace(item.reg, item.value)
- })
- }
-
- // 鏁版嵁婧愬鐞�, 瀛樺湪鏄剧ず鍒楁椂
- if (arr_field && _dataresource) {
- if (/\s/.test(_dataresource)) {
- _dataresource = '(' + _dataresource + ') tb'
- }
-
- if (verify.order) {
- _dataresource = `select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${verify.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows`
+ // 鏁版嵁婧愬鐞�, 瀛樺湪鏄剧ず鍒楁椂
+ if (_dataresource) {
+ if (custompage || !verify.order) {
+ _dataresource = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search}`
} else {
- _dataresource = `select ${arr_field} from ${_dataresource} ${_search}`
+ _dataresource = `/*system_query*/select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${verify.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
}
}
if (_customScript) {
- sql = `/* sql 楠岃瘉 */
+ sql = `${declare}
${_customScript}
${_dataresource}
+ ${_tailScript}
aaa:
if @ErrorCode!=''
- insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,@UserID@
+ insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'1949-10-01 15:00:00'
+ `
+ } else if (_tailScript) {
+ sql = `${declare}
+ ${_dataresource}
+ ${_tailScript}
+ aaa:
+ if @ErrorCode!=''
+ insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'1949-10-01 15:00:00'
`
} else {
- sql = `/* sql 楠岃瘉 */
- declare @ErrorCode nvarchar(50),@retmsg nvarchar(4000),@UserName nvarchar(50),@FullName nvarchar(50),@RoleID nvarchar(512),@mk_departmentcode nvarchar(50),@mk_organization nvarchar(50),@login_city nvarchar(50) select @ErrorCode='',@retmsg =''
+ sql = `${declare}
${_dataresource}`
}
- sql = sql.replace(/\n\s{8}/ig, '\n')
- console.info(sql)
return sql
- }
-
- /**
- * @description 鑾峰彇鍏ㄩ儴鎼滅储鏉′欢
- * @param {Array} searches 鎼滅储鏉′欢鏁扮粍
- */
- static formatSearch (searches) {
- if (!searches || searches.length === 0) return []
-
- let newsearches = []
- searches.forEach(search => {
- if (!search.field) return
-
- let item = {
- key: search.field,
- match: search.match,
- type: search.type,
- label: search.label,
- value: search.initval,
- required: search.required === 'true'
- }
-
- if (item.type === 'group') {
- item.key = search.datefield
- item.type = 'daterange'
- item.match = 'between'
- item.value = [moment().format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')].join(',')
-
- newsearches.push(item)
- return
- } else if (item.type === 'date') {
- item.value = moment().format('YYYY-MM-DD')
- } else if (item.type === 'datemonth') {
- item.value = moment().format('YYYY-MM')
- } else if (item.type === 'dateweek') {
- item.value = moment().format('YYYY-MM-DD')
- } else if (item.type === 'daterange') {
- item.value = [moment().format('YYYY-MM-DD'), moment().format('YYYY-MM-DD')].join(',')
- } else if (item.type === 'multiselect' || (item.type === 'checkcard' && search.multiple === 'true')) {
- item.type = 'multi'
- item.value = '@$@'
- } else {
- item.value = '@$@'
- }
- newsearches.push(item)
- })
-
- return newsearches
- }
-
- /**
- * @description 鑾峰彇鎼滅储鐢ㄤ簬姝e垯鏇挎崲
- * @param {Array} searches 鎼滅储鏉′欢
- * @return {String} searchText 鎷兼帴缁撴灉
- */
- static getRegOptions (searches) {
- if (!searches || searches.length === 0) return []
-
- let options = []
- let fieldmap = new Map()
- searches.forEach(search => {
- let item = {
- key: search.field,
- value: '0'
- }
-
- if (fieldmap.has(item.key)) {
- item.key = item.key + '1'
- }
-
- fieldmap.set(item.key, true)
-
- if (search.type === 'group') {
- options.push({
- key: search.field,
- value: '0'
- })
- options.push({
- key: search.datefield,
- value: '0'
- })
- options.push({
- key: search.datefield + '1',
- value: '0'
- })
- options.push(item)
- } else if (['datemonth', 'dateweek', 'daterange'].includes(search.type)) {
- options.push(item)
- options.push({
- key: item.key + '1',
- value: '0'
- })
- } else if (search.type === 'text' || search.type === 'select') {
- item.key.split(',').forEach(field => {
- let cell = JSON.parse(JSON.stringify(item))
- cell.key = field
-
- options.push(cell)
- })
- } else {
- options.push(item)
- }
- })
-
- return options
}
}
\ No newline at end of file
--
Gitblit v1.8.0