From 547e5fe219ee7bee309ecd67db74bc8df66b5433 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期三, 23 八月 2023 11:47:45 +0800
Subject: [PATCH] 2023-08-23

---
 src/utils/utils-datamanage.js |  243 +++++++++++++++++++++--------------------------
 1 files changed, 109 insertions(+), 134 deletions(-)

diff --git a/src/utils/utils-datamanage.js b/src/utils/utils-datamanage.js
index 5be52b3..be72648 100644
--- a/src/utils/utils-datamanage.js
+++ b/src/utils/utils-datamanage.js
@@ -6,7 +6,6 @@
   /**
    * @description 鏁版嵁婧愬悕绉帮紝鐢ㄤ簬缁熶竴鏌ヨ
    * @param {Object}   setting      鏁版嵁婧愯缃�
-   * @param {String}   arrFields    鏌ヨ瀛楁
    * @param {Array}    search       鎼滅储鏉′欢
    * @param {String}   orderBy      鎺掑簭鏂瑰紡
    * @param {Number}   pageIndex    椤电爜
@@ -14,11 +13,11 @@
    * @param {String}   BID          涓婄骇ID
    * @return {Object}  param
    */
-  static getQueryDataParams (setting, arrFields, search = [], orderBy = '', pageIndex = 1, pageSize = 10, BID, id, year) {
+  static getQueryDataParams (setting, search = [], orderBy = '', pageIndex = 1, pageSize = 10, BID, id, year) {
     let param = null
 
     if (setting.interType === 'system') {
-      param = this.getDefaultQueryParam(setting, arrFields, search, orderBy, pageIndex, pageSize, id, BID, year)
+      param = this.getDefaultQueryParam(setting, search, orderBy, pageIndex, pageSize, id, BID, year)
     } else {
       param = this.getCustomQueryParam(setting, search, orderBy, pageIndex, pageSize, id, year)
     }
@@ -99,18 +98,14 @@
   /**
    * @description 鑾峰彇绯荤粺瀛樺偍杩囩▼鐨勫弬鏁�
    */
-  static getDefaultQueryParam (setting, arrFields, search, orderBy, pageIndex, pageSize, id, BID, year) {
+  static getDefaultQueryParam (setting, search, orderBy, pageIndex, pageSize, id, BID, year) {
     let param = {
       func: 'sPC_Get_TableData',
       obj_name: 'data',
       exec_type: 'y',
-      arr_field: arrFields,
+      arr_field: setting.arr_field,
       default_sql: setting.execute ? 'true' : 'false'
     }
-
-    // if (setting.transaction === 'true') {
-    //   param.func = 'sPC_Get_TableData_try'
-    // }
 
     let userName = sessionStorage.getItem('User_Name') || ''
     let fullName = sessionStorage.getItem('Full_Name') || ''
@@ -126,39 +121,13 @@
 
     let _dataresource = setting.dataresource
     let _customScript = ''
+    let _tailScript = setting.tailScript || ''
     
     if (setting.customScript) {
       _customScript = `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='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
         ${setting.customScript}
       `
-    }
-
-    _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
-    _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
-    _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
-    _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
-    _customScript = _customScript.replace(/\$sum@/ig, '/*')
-    _customScript = _customScript.replace(/@sum\$/ig, '*/')
-
-    // _dataresource = _dataresource.replace(/@ID@/ig, `''`)
-    // _customScript = _customScript.replace(/@ID@/ig, `''`)
-    _dataresource = _dataresource.replace(/@BID@/ig, `'${BID || ''}'`)
-    _customScript = _customScript.replace(/@BID@/ig, `'${BID || ''}'`)
-    _dataresource = _dataresource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _customScript = _customScript.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _dataresource = _dataresource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _customScript = _customScript.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _dataresource = _dataresource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _customScript = _customScript.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _dataresource = _dataresource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _customScript = _customScript.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _dataresource = _dataresource.replace(/@typename@/ig, `'admin'`)
-    _customScript = _customScript.replace(/@typename@/ig, `'admin'`)
-
-    if (setting.$re_year) {
-      _dataresource = _dataresource.replace(/@mk_year@/ig, year)
-      _customScript = _customScript.replace(/@mk_year@/ig, year)
     }
 
     let allSearch = Utils.getAllSearchOptions(search)
@@ -168,37 +137,55 @@
         value: `'${item.value}'`
       }
     })
-    regoptions.push({
-      reg: new RegExp('@orderBy@', 'ig'),
-      value: orderBy
-    }, {
-      reg: new RegExp('@pageSize@', 'ig'),
-      value: setting.laypage ? pageSize : '9999'
-    }, {
-      reg: new RegExp('@pageIndex@', 'ig'),
-      value: pageIndex
-    })
+    regoptions.push(
+      { reg: /@orderBy@/ig, value: orderBy },
+      { reg: /@pageSize@/ig, value: setting.laypage ? pageSize : '9999' },
+      { reg: /@pageIndex@/ig, value: pageIndex},
+      { reg: /@select\$|\$select@/ig, value: ''},
+      { reg: /\$sum@/ig, value: '/*'},
+      { reg: /@sum\$/ig, value: '*/'},
+      { reg: /@ID@/ig, value: `'${id || ''}'`},
+      { reg: /@BID@/ig, value: `'${BID || ''}'`},
+      { reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
+      { reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
+      { reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
+      { reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
+      { reg: /@typename@/ig, value: `'admin'`},
+    )
+
+    if (setting.$re_year) {
+      regoptions.push({ reg: /@mk_year@/ig, value: year })
+    }
 
     regoptions.forEach(item => {
       _dataresource = _dataresource.replace(item.reg, item.value)
       _customScript = _customScript.replace(item.reg, item.value)
+      _tailScript = _tailScript.replace(item.reg, item.value)
     })
 
     let _search = ''
     
     if (_dataresource) {
+      let id_search = ''
+      if (id) {
+        if (/^excel:/.test(id)) {
+          id_search = `${setting.primaryKey} in (select ID from dbo.SplitComma('${id.replace(/^excel:/, '')}'))`
+        } else {
+          id_search = `${setting.primaryKey || 'ID'}='${id}'`
+          orderBy = ''
+        }
+      }
+
       if (setting.queryType === 'statistics') { // 缁熻鏁版嵁婧愶紝鍐呭鏇挎崲
         if (id) {
-          _dataresource = _dataresource + ` where ${setting.primaryKey || 'ID'}='${id}'`
-        }
-      } else if (!id) {
-        _search = Utils.joinMainSearchkey(search)
-        if (_search) {
-          _search = 'where ' + _search
+          _dataresource = _dataresource + ` where ${id_search}`
         }
       } else if (id) {
         _search = Utils.joinMainSearchkey(search)
-        _search = `where ${_search ? _search + ' AND ' : ''} ${setting.primaryKey || 'ID'}='${id}'`
+        _search = `where ${_search ? _search + ' AND ' : ''} ${id_search}`
+      } else {
+        _search = Utils.joinMainSearchkey(search)
+        _search = _search ? 'where ' + _search : ''
       }
     }
 
@@ -211,42 +198,52 @@
 
     let LText = ''
     let DateCount = ''
+    let arr_field = setting.all_field || setting.arr_field
 
-    if (setting.sub_field) {
-      arrFields = arrFields + ',' + setting.sub_field
-    }
-
-    if (_dataresource && setting.laypage && orderBy && !id) {
-      if (setting.custompage) {
-        LText = `/*system_query*/select ${arrFields} from ${_dataresource} ${_search} `
-      } else {
-        LText = `/*system_query*/select top ${pageSize} ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows `
-        if (setting.sub_field) {
-          DateCount = `/*system_query*/select count(1) as total from (select distinct ${setting.primaryKey} from ${_dataresource} ${_search})a`
+    if (_dataresource) {
+      if (setting.laypage && orderBy) {
+        if (setting.custompage) {
+          LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search} `
         } else {
-          DateCount = `/*system_query*/select count(1) as total from ${_dataresource} ${_search}`
+          LText = `/*system_query*/select top ${pageSize} ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable where rows > ${pageSize * (pageIndex - 1)} order by tmptable.rows `
+          if (setting.sub_field) {
+            DateCount = `/*system_query*/select count(1) as total from (select distinct ${setting.primaryKey} from ${_dataresource} ${_search})a`
+          } else {
+            DateCount = `/*system_query*/select count(1) as total from ${_dataresource} ${_search}`
+          }
         }
+      } else if (orderBy) {
+        LText = `/*system_query*/select ${arr_field} from (select ${arr_field} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
+      } else {
+        LText = `/*system_query*/select ${arr_field} from ${_dataresource} ${_search}  `
       }
-    } else if (_dataresource && orderBy) {
-      LText = `/*system_query*/select ${arrFields} from (select ${arrFields} ,ROW_NUMBER() over(order by ${orderBy}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
-    } else if (_dataresource) {
-      LText = `/*system_query*/select ${arrFields} from ${_dataresource} ${_search}  `
     }
 
     if (_customScript) {
       if (LText) {
         LText = `${LText}
+          ${_tailScript}
           aaa:
           if @ErrorCode!=''
             insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}' 
         `
       } else {
         _customScript = `${_customScript}
+          ${_tailScript}
           aaa:
           if @ErrorCode!=''
             insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}' 
         `
       }
+    } else if (_tailScript) {
+      LText = `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='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
+        ${LText}
+        ${_tailScript}
+        aaa:
+        if @ErrorCode!=''
+          insert into tmp_err_retmsg (ID, ErrorCode, retmsg, CreateUserID) select @time_id@,@ErrorCode, @retmsg,'${sessionStorage.getItem('UserID') || ''}' 
+      `
     } else {
       LText = `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='${userName}', @FullName='${fullName}', @RoleID='${RoleID}', @mk_departmentcode='${departmentcode}', @mk_organization='${organization}', @mk_user_type='${mk_user_type}', @mk_nation='${nation}', @mk_province='${province}', @mk_city='${city}', @mk_district='${district}', @mk_address='${address}'
@@ -334,28 +331,6 @@
       `
     }
 
-    _dataresource = _dataresource.replace(/@sum\$|\$sum@/ig, '')
-    _customScript = _customScript.replace(/@sum\$|\$sum@/ig, '')
-    _dataresource = _dataresource.replace(/\$select@/ig, '/*')
-    _dataresource = _dataresource.replace(/@select\$/ig, '*/')
-    _customScript = _customScript.replace(/\$select@/ig, '/*')
-    _customScript = _customScript.replace(/@select\$/ig, '*/')
-
-    // _dataresource = _dataresource.replace(/@ID@/ig, `''`)
-    // _customScript = _customScript.replace(/@ID@/ig, `''`)
-    _dataresource = _dataresource.replace(/@BID@/ig, `'${BID || ''}'`)
-    _customScript = _customScript.replace(/@BID@/ig, `'${BID || ''}'`)
-    _dataresource = _dataresource.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _customScript = _customScript.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _dataresource = _dataresource.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _customScript = _customScript.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _dataresource = _dataresource.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _customScript = _customScript.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _dataresource = _dataresource.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _customScript = _customScript.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _dataresource = _dataresource.replace(/@typename@/ig, `'admin'`)
-    _customScript = _customScript.replace(/@typename@/ig, `'admin'`)
-
     let allSearch = Utils.getAllSearchOptions(search)
     let regoptions = allSearch.map(item => {
       return {
@@ -364,16 +339,21 @@
       }
     })
 
-    regoptions.push({
-      reg: new RegExp('@orderBy@', 'ig'),
-      value: orderBy
-    }, {
-      reg: new RegExp('@pageSize@', 'ig'),
-      value: 999999
-    }, {
-      reg: new RegExp('@pageIndex@', 'ig'),
-      value: 1
-    })
+    regoptions.push(
+      { reg: /@orderBy@/ig, value: orderBy },
+      { reg: /@pageSize@/ig, value: 999999 },
+      { reg: /@pageIndex@/ig, value: 1},
+      { reg: /\$select@/ig, value: '/*'},
+      { reg: /@select\$/ig, value: '*/'},
+      { reg: /@sum\$|\$sum@/ig, value: ''},
+      { reg: /@ID@/ig, value: `''`},
+      { reg: /@BID@/ig, value: `'${BID || ''}'`},
+      { reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
+      { reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
+      { reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
+      { reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
+      { reg: /@typename@/ig, value: `'admin'`},
+    )
 
     regoptions.forEach(item => {
       _dataresource = _dataresource.replace(item.reg, item.value)
@@ -447,7 +427,6 @@
 export function getStructDefaultParam (component, searchlist, first) {
   const { columns, setting, dataName, format, uuid } = component
 
-  let arr_field = columns.map(col => col.field)
   let _dataresource = setting.dataresource
   let _customScript = setting.customScript
   
@@ -464,12 +443,12 @@
     _customScript = _customScript.replace(item.reg, item.value)
   })
 
-  _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
-  _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
-  _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
-  _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
-  _customScript = _customScript.replace(/\$sum@/ig, '/*')
-  _customScript = _customScript.replace(/@sum\$/ig, '*/')
+  // _dataresource = _dataresource.replace(/@select\$|\$select@/ig, '')
+  // _customScript = _customScript.replace(/@select\$|\$select@/ig, '')
+  // _dataresource = _dataresource.replace(/\$sum@/ig, '/*')
+  // _dataresource = _dataresource.replace(/@sum\$/ig, '*/')
+  // _customScript = _customScript.replace(/\$sum@/ig, '/*')
+  // _customScript = _customScript.replace(/@sum\$/ig, '*/')
 
   let _search = ''
   if (setting.queryType !== 'statistics' && _dataresource) {
@@ -478,9 +457,9 @@
   }
 
   if (setting.order && _dataresource) {
-    _dataresource = `select top 1000 ${arr_field.join(',')} from (select ${arr_field.join(',')} ,ROW_NUMBER() over(order by ${setting.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
+    _dataresource = `select top 1000 ${setting.arr_field} from (select ${setting.arr_field} ,ROW_NUMBER() over(order by ${setting.order}) as rows from ${_dataresource} ${_search}) tmptable order by tmptable.rows `
   } else if (_dataresource) {
-    _dataresource = `select top 1000 ${arr_field.join(',')} from ${_dataresource} ${_search} `
+    _dataresource = `select top 1000 ${setting.arr_field} from ${_dataresource} ${_search} `
   }
 
   if (first) {
@@ -508,6 +487,7 @@
     $name: setting.$name,
     columns: columns,
     par_tablename: '',
+    order: setting.order || '',
     type: format === 'array' ? format : '',
     primaryKey: setting.primaryKey || '',
     foreign_key: '',
@@ -524,10 +504,18 @@
 export function getStructuredParams (params, config, BID) {
   let LText_field = []
   let diffUser = false
-  // let transaction = false
-  let loginId = `'${sessionStorage.getItem('LoginUID') || ''}'`
-  let sessionId = `'${localStorage.getItem('SessionUid') || ''}'`
-  let userId = `'${sessionStorage.getItem('UserID') || ''}'`
+
+  let regoptions = [
+    { reg: /@pageSize@/ig, value: 9999 },
+    { reg: /@pageIndex@/ig, value: 1},
+    { reg: /@ID@/ig, value: `''`},
+    { reg: /@BID@/ig, value: `'${BID || ''}'`},
+    { reg: /@LoginUID@/ig, value: `'${sessionStorage.getItem('LoginUID') || ''}'`},
+    { reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
+    { reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
+    { reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
+    { reg: /@typename@/ig, value: `'admin'`},
+  ]
 
   let _LText = params.map((item, index) => {
     let _script = item.script
@@ -536,24 +524,14 @@
     if (!diffUser && (/@userid@/ig.test(item.sql) || /@userid@/ig.test(_script))) {
       diffUser = true
     }
-    // if (item.transaction) {
-    //   transaction = true
-    // }
 
-    _sql = _sql.replace(/@ID@/ig, `''`)
-    _script = _script.replace(/@ID@/ig, `''`)
-    _sql = _sql.replace(/@BID@/ig, `'${BID || ''}'`)
-    _script = _script.replace(/@BID@/ig, `'${BID || ''}'`)
-    _sql = _sql.replace(/@LoginUID@/ig, loginId)
-    _script = _script.replace(/@LoginUID@/ig, loginId)
-    _sql = _sql.replace(/@SessionUid@/ig, sessionId)
-    _script = _script.replace(/@SessionUid@/ig, sessionId)
-    _sql = _sql.replace(/@UserID@/ig, userId)
-    _script = _script.replace(/@UserID@/ig, userId)
-    _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _script = _script.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _sql = _sql.replace(/@typename@/ig, `'admin'`)
-    _script = _script.replace(/@typename@/ig, `'admin'`)
+    _sql = _sql.replace(/@orderBy@/ig, item.order)
+    _script = _script.replace(/@orderBy@/ig, item.order)
+    
+    regoptions.forEach(cell => {
+      _sql = _sql.replace(cell.reg, cell.value)
+      _script = _script.replace(cell.reg, cell.value)
+    })
 
     // 娴嬭瘯绯荤粺鎵撳嵃鏌ヨ璇彞
     if (window.GLOB.debugger === true) {
@@ -579,9 +557,6 @@
   if (config.MenuName) {
     param.menuname = config.MenuName
   }
-  // if (transaction) {
-  //   param.func = 'sPC_Get_structured_data_try'
-  // }
 
   let { LText, LText1, LText2 } = Utils.sPCInUpDeFormatOptions(param.LText)
 

--
Gitblit v1.8.0