From 48a18736c461ad730bd264b0ac7b40b68a0e33a1 Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期日, 28 六月 2020 20:30:20 +0800
Subject: [PATCH] 2020-06-28

---
 src/utils/utils.js |  713 +++++++++++++---------------------------------------------
 1 files changed, 164 insertions(+), 549 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 3a918f8..9c2063c 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -2,8 +2,6 @@
 import md5 from 'md5'
 import options from '@/store/options.js'
 
-const service = window.GLOB.service ? (/\/$/.test(window.GLOB.service) ? window.GLOB.service : window.GLOB.service + '/') : ''
-
 export default class Utils {
   /**
    * @description 鐢熸垚32浣島uid string + 鏃堕棿
@@ -39,11 +37,20 @@
   /**
    * @description md5鍔犲瘑
    * @return {String}  str         鍔犲瘑涓�
-   * @return {String}  timestamp   鏃堕棿鎴�  
+   * @return {String}  timestamp   鏃堕棿鎴�
+   * @return {Boolean} isopenkey   鏄惁涓轰簯绔瘑閽�
    */
-  static encrypt (str, timestamp) {
-    let salt = 'mingke' // 鐩愬��
-    let _str = str + salt + timestamp
+  static encrypt (str, timestamp, isopenkey) {
+    let salt1 = 'mingke'    // sql璇硶鐩愬��
+    let salt2 = 'open_key'  // 浜戠鏁版嵁鎿嶄綔鐩愬��
+    let _str = ''
+
+    if (isopenkey) {
+      _str = salt2 + timestamp + str
+    } else {
+      _str = str + salt1 + timestamp
+    }
+
     if (_str.length > 8000) {
       _str = _str.slice(_str.length - 8000)
     }
@@ -67,10 +74,10 @@
       {key: 'alter', reg: /(^|\s)alter\s/ig},
       {key: 'truncate', reg: /(^|\s)truncate\s/ig},
       {key: 'if', reg: /(^|\s)if\s/ig},
-      {key: 'exec', reg: /exec/ig},
-      {key: 'OBJECT', reg: /object/ig},
-      {key: 'sys.', reg: /sys\./ig},
-      {key: 'kill', reg: /kill/ig}
+      {key: 'exec', reg: /(^|\s)exec(\s|\()/ig},
+      {key: 'OBJECT', reg: /(^|\s)object(\s|\()/ig},
+      {key: 'sys.', reg: /(^|\s)sys\./ig},
+      {key: 'kill', reg: /(^|\s)kill\s/ig}
     ]
 
     if (type === 'customscript') {
@@ -553,9 +560,9 @@
 
     let baseurl = ''
     if (process.env.NODE_ENV === 'production') {
-      baseurl = document.location.origin + '/' + service
+      baseurl = document.location.origin + '/' + window.GLOB.service
     } else {
-      baseurl = 'http://qingqiumarket.cn/' + service
+      baseurl = window.GLOB.location + window.GLOB.service
     }
     // if (!/Content\/images\/upload\//.test(url)) {
     //   baseurl = baseurl + 'Content/images/upload/'
@@ -576,7 +583,7 @@
     if (options.cloudServiceApi) {
       baseurl = options.cloudServiceApi.replace(/webapi(.*)$/, '')
     } else {
-      baseurl = document.location.origin + '/' + service
+      baseurl = document.location.origin + '/' + window.GLOB.service
     }
 
     return url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url
@@ -626,6 +633,13 @@
   static getExcelInSql (item, data, dict) {
     let btn = item.verify
     let keys = ['delete', 'drop', 'insert', 'truncate', 'update']
+    let userName = sessionStorage.getItem('User_Name') || ''
+    let fullName = sessionStorage.getItem('Full_Name') || ''
+
+    if (sessionStorage.getItem('isEditState') === 'true') {
+      userName = sessionStorage.getItem('CloudUserName') || ''
+      fullName = sessionStorage.getItem('CloudFullName') || ''
+    }
 
     let errors = []
     let _topline = btn.range || 0
@@ -641,22 +655,28 @@
 
         if (script.position === 'init') {
           _initCustomScript += `
-          ${script.sql}
-          `
+        /* 鑷畾涔夎剼鏈� */
+        ${script.sql}
+        `
         } else if (script.position === 'front') {
           _prevCustomScript += `
-          ${script.sql}
-          `
+        /* 鑷畾涔夎剼鏈� */
+        ${script.sql}
+        `
         } else {
           _backCustomScript += `
-          ${script.sql}
-          `
+        /* 鑷畾涔夎剼鏈� */
+        ${script.sql}
+        `
         }
       })
     }
 
     let _Ltext = data.map((item, lindex) => {
-      let vals = btn.columns.map((col, cindex) => {
+      let vals = []
+      btn.columns.forEach((col, cindex) => {
+        if (col.import === 'false') return
+
         let val = item[col.Column] !== undefined ? item[col.Column] : ''
         let _position = (_topline + lindex + 1) + dict['main.excel.line'] + ' ' + (cindex + 1) + dict['main.excel.column']  + ' '
 
@@ -725,9 +745,28 @@
               errors.push(_error)
             }
           }
+        } else if (col.type === 'date') {
+          val = val.replace(/(^\s*$)|\t*|\v*/ig, '')
+
+          if (!val && col.required === 'true') { // 蹇呭~鏍¢獙
+            let _error =  _position + dict['main.excel.content.emptyerror']
+            errors.push(_error)
+          } else {                               // 鍏抽敭瀛楁牎楠�
+            keys.forEach(key => {
+              let _patten = new RegExp('(^' + key + '\\s+)|(\\s+' + key + '\\s+)', 'ig')
+              if (_patten.test(val)) {
+                let _error = _position + dict['main.excel.includekey'] + key
+                errors.push(_error)
+              }
+            })
+          }
         }
-        
-        return `'${val}' as ${col.Column}`
+
+        if (col.type === 'date') {
+          vals.push(`case when ${col.Column}='' then '1900-01-01' else dateadd(day,cast('${val}' as int)-2,'1900-01-01') end as ${col.Column}`)
+        } else {
+          vals.push(`'${val}' as ${col.Column}`)
+        }
       })
 
       let _lineIndex = '0000' + (lindex + 1) + '0'
@@ -738,9 +777,14 @@
       return `Select ${vals.join(',')}`
     })
 
-    _Ltext = _Ltext.join(' Union all ')
+    let result = []
+    for(let i = 0; i < _Ltext.length; i += 20) {
+      result.push(_Ltext.slice(i, i + 20))
+    }
 
     let _sql = ''
+    let _sqlInsert = ''
+    let _sqlBottom = ''
 
     if (item.intertype === 'inner' && !item.innerFunc) {
       let _uniquesql = ''
@@ -749,9 +793,8 @@
           if (unique.status === 'false') return
 
           let _fields = unique.field.split(',')
-          let _fields_ = _fields.map(_field => {
-            return `a.${_field}=b.${_field}`
-          })
+          let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`)
+          let _afields = _fields.map(_field => `a.${_field}`)
           _fields_ = _fields_.join(' and ')
 
           if (unique.verifyType !== 'physical') {
@@ -759,81 +802,88 @@
           }
 
           _uniquesql += `
-          Set @tbid=''
-          Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${item.sheet} ) a group by ${unique.field} having sum(n)>1
-
-          If @tbid!=''
-          Begin
-            select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 閲嶅'
-            goto aaa
-          end
-
-          Set @tbid=''
-          Select top 1 @tbid=${_fields.join('+\' \'+')} from  @${item.sheet} a
-          Inner join ${item.sheet} b on ${_fields_}
-
-          If @tbid!=''
-          Begin
-            select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�'
-            goto aaa
-          end
-          `
+        /* 閲嶅鎬ч獙璇� */
+        Set @tbid=''
+        Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${item.sheet} ) a group by ${unique.field} having sum(n)>1
+        
+        If @tbid!=''
+        Begin
+          select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 閲嶅'
+          goto aaa
+        end
+        
+        Set @tbid=''
+        Select top 1 @tbid=${_afields.join('+\' \'+')} from  @${item.sheet} a Inner join ${item.sheet} b on ${_fields_}
+        
+        If @tbid!=''
+        Begin
+          select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�'
+          goto aaa
+        end
+        `
         })
-
-        if (_uniquesql) {
-          _uniquesql = 'Declare @tbid Nvarchar(512)' + _uniquesql
-        }
       }
 
       let declarefields = []
       let fields = []
 
       btn.columns.forEach(col => {
-        declarefields.push(`${col.Column} ${col.type}`)
+        if (col.type === 'date') {
+          declarefields.push(`${col.Column} Nvarchar(50)`)
+        } else {
+          declarefields.push(`${col.Column} ${col.type}`)
+        }
         fields.push(col.Column)
       })
 
       fields = fields.join(',')
 
       let _insert = ''
-
-      if (_prevCustomScript) {
-        _insert += _prevCustomScript
-      }
-
       if (btn.default !== 'false') {
-        _insert += `
+        _insert = `
+        /* 榛樿sql */
         Insert into ${item.sheet} (${fields},createuserid,createuser,createstaff,bid) 
         Select ${fields},@userid@,@username,@fullname,@BID@ From @${item.sheet}
         `
       }
 
-      if (_backCustomScript) {
-        _insert += _backCustomScript
-      }
-
-      _sql = `declare @${item.sheet} table (${declarefields.join(',')},jskey nvarchar(50) )
-      Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000)
-
-      Select  @ErrorCode='', @retmsg=''
+      _sql = `
+        /* 绯荤粺鐢熸垚 */
+        declare @${item.sheet} table (${declarefields.join(',')},jskey nvarchar(50) )
+        Declare @UserName nvarchar(50),@FullName nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@tbid Nvarchar(512)
+        
+        Select  @ErrorCode='', @retmsg='', @UserName='${userName}', @FullName='${fullName}'
+        ${_initCustomScript}
+        `
+      _sqlInsert = `Insert into  @${item.sheet} (${fields},jskey)`
+      _sqlBottom = `
+        /* 榛樿sql */
+        delete tmp_excel_in where upid=@upid@
+        
+        delete tmp_excel_in where datediff(day,createdate,getdate())>15
+        ${_uniquesql}
+        ${_prevCustomScript}
+        ${_insert}
+        ${_backCustomScript}
+        Delete @${item.sheet}
+        
+        aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
       
-      select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID@
-      ${_initCustomScript}
-      Insert into  @${item.sheet} (${fields},jskey)
-      ${_Ltext}
-      ${_uniquesql}
-      ${_insert}
-      Delete @${item.sheet}
-
-      aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
-
-    } else {
-      _sql = _Ltext
+      let fsql = `${_sql}${_sqlInsert}${_sqlBottom}`
+      fsql = fsql.replace(/\n\s{8}/ig, '\n')
+      console.log(fsql)
     }
-
-    console.log(_sql)
+    
     return {
       sql: _sql,
+      lines: result.map((list, index) => {
+        return {
+          Ltext: window.btoa(window.encodeURIComponent(list.join(' Union all '))),
+          Sort: (index + 1) * 10
+        }
+      }),
+      insert: _sqlInsert,
+      bottom: _sqlBottom,
       errors: errors.join('; ')
     }
   }
@@ -849,6 +899,8 @@
     let verify = btn.verify || {}
     let _formFieldValue = {}
     let _actionType = null
+    let appkey = window.GLOB.appkey || ''
+    let sessionUid = sessionStorage.getItem('SessionUid') || ''
 
     if (verify.default !== 'false') { // 鍒ゆ柇鏄惁浣跨敤榛樿sql
       _actionType = btn.sqlType
@@ -899,6 +951,12 @@
     // 鑾峰彇瀛楁閿�煎
     if (formdata) {
       formdata.forEach(form => {
+        if (form.type === 'text') { // 鐗规畩瀛楁鏇挎崲
+          form.value = form.value.replace(/^(\s*)@appkey@(\s*)$/ig, appkey)
+          form.value = form.value.replace(/^(\s*)@SessionUid@(\s*)$/ig, sessionUid)
+          form.value = form.value.replace(/^(\s*)@bid@(\s*)$/ig, BID)
+        }
+
         _formFieldValue[form.key] = form.value
         let _key = form.key.toLowerCase()
 
@@ -1027,7 +1085,7 @@
     // 鍒濆鍖栧嚟璇佸強鐢ㄦ埛淇℃伅瀛楁
     _sql += `
         /* 鍑瘉鍙婄敤鎴蜂俊鎭垵濮嬪寲璧嬪�� */
-        select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}'
+        select @BVoucher='',@FIBVoucherDate='',@FiYear='',@ErrorCode='',@retmsg='',@UserName='${userName}', @FullName='${fullName}', @BillCode='', @ModularDetailCode=''
         `
 
     if (_initCustomScript) {
@@ -1051,21 +1109,31 @@
         datasource = '(' + datasource + ') tb'
       }
 
-      let _ID = '=@ID@'
       if (btn.Ot === 'requiredOnce') {
-        _ID = ' in (select ID from  dbo.SplitComma(@ID@))'
-      }
-
-      _sql += `
+        _sql += `
         /* 澶辨晥楠岃瘉 */
         select @tbid='', @ErrorCode='',@retmsg=''
-        select @tbid=${primaryKey} from ${datasource} where ${primaryKey} ${_ID}
+        select @tbid='X' from ${datasource} right join (select ID from  dbo.SplitComma(@ID@)) sp
+        on tb.id =sp.id where tb.id is null
+
+        If @tbid!=''
+        Begin
+          select @ErrorCode='E',@retmsg='鏁版嵁宸插け鏁�'
+          goto aaa
+        end
+        `
+      } else {
+        _sql += `
+        /* 澶辨晥楠岃瘉 */
+        select @tbid='', @ErrorCode='',@retmsg=''
+        select @tbid=${primaryKey} from ${datasource} where ${primaryKey}=@ID@
         If @tbid=''
         Begin
           select @ErrorCode='E',@retmsg='鏁版嵁宸插け鏁�'
           goto aaa
         end
         `
+      }
     }
 
     // 姣旇緝楠岃瘉
@@ -1102,9 +1170,14 @@
           if (_field.toLowerCase() === 'bid' && !hasBid) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺
             _fval = '@BID@'
           }
-          arr.push(_field.toLowerCase())
-
-          _fieldValue.push(`${_field}=${_fval}`)
+          if (_field.toLowerCase() === 'bid' && tab && tab.foreignKey) {
+            arr.push(tab.foreignKey.toLowerCase())
+            _fieldValue.push(`${tab.foreignKey}=${_fval}`)
+          } else {
+            arr.push(_field.toLowerCase())
+            _fieldValue.push(`${_field}=${_fval}`)
+          }
+          
           _value.push(`${_labels[index] || ''}锛�${_formFieldValue[_field] || ''}`)
         })
 
@@ -1132,16 +1205,16 @@
       let datasource = setting.dataresource
       if (/\s/.test(datasource)) { // 鎷兼帴鍒悕
         datasource = '(' + datasource + ') tb'
+      } else {
+        datasource = datasource + ' tb'
       }
 
       verify.uniques.forEach(item => {
-        let _primaryKey = item.field.split(',').includes(primaryKey) ? '' : ',' + primaryKey
-
         _sql += `
         /* 鍚岀被鏁版嵁楠岃瘉 */
         Set @tbid=''
 
-        Select top 1 @tbid='X' from (select ${item.field}${_primaryKey},1 as n from ${datasource} ) tb  inner join (select ID from  dbo.SplitComma(@ID@)) sp on tb.${primaryKey}=sp.ID group by ${item.field} having sum(n)>1
+        Select top 1 @tbid='X' from (select distinct ${item.field},1 as n from ${datasource} inner join (select ID from  dbo.SplitComma(@ID@)) sp on tb.${primaryKey}=sp.ID ) a having sum(n)>1
         
         If @tbid!=''
         Begin
@@ -1412,463 +1485,5 @@
     _sql = _sql.replace(/\n\s{8}/ig, '\n')
     console.log(_sql)
     return _sql
-  }
-
-  /**
-   * @description 鍒犻櫎瀛樺偍杩囩▼sql
-   * @return {String} name 瀛樺偍杩囩▼鍚嶇О
-   */
-  static dropfunc (name) {
-    return `IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID('${name}') AND type in (N'P', N'PC'))  mdrpk PROCEDURE ${name}`
-  }
-
-  /**
-   * @description 鍒涘缓椤甸潰瀛樺偍杩囩▼
-   * @return {String}
-   */
-  static getTableFunc (param, menu, config) {
-    let form = ''
-    let formParam = ''
-    let _vars = ['bid', 'pageindex', 'pagesize', 'ordercol', 'ordertype', 'exceltype', 'septmenuno', 'lang', 'debug', 'loginuid', 'sessionuid', 'userid', 'errorcode', 'retmsg']
-    let _columns = []
-    let primaryKey = config.setting.primaryKey || 'ID'
-
-    if (!_vars.includes(primaryKey.toLowerCase())) {
-      _vars.push(primaryKey.toLowerCase())
-      formParam = `mchr13k@${primaryKey} nvarchar(50)='',`
-    }
-
-    if (config.search && config.search.length > 0) {
-      let _fields = new Map()
-      config.search.forEach(item => {
-        if (item.field) {
-          let type = ''
-
-          if (item.type.match(/date/ig)) {
-            type = 'datetime=null'
-          } else {
-            type = 'nvarchar(50)=\'\''
-          }
-
-          item.field.split(',').forEach(cell => {
-            let _f = cell
-            if (_fields.has(cell)) {
-              _f = _f + '1'
-            }
-  
-            _fields.set(cell, true)
-
-            if (!_vars.includes(_f.toLowerCase())) {
-              _vars.push(_f.toLowerCase())
-              formParam = formParam + `mchr13k@${_f} ${type},`
-            }
-          })
-        }
-      })
-    }
-
-    if (config.columns && config.columns.length > 0) {
-      config.columns.forEach(item => {
-        if (item.field) {
-          _columns.push(`${item.field} as ${item.label}`)
-        }
-      })
-
-      form = `
-        declare @dc table (${_columns.join(',')})
-        
-        @tableid ='${menu.MenuID}'
-      `
-    }
-
-    let Ltext = `create proc ${param.innerFunc}
-    ( /*${menu.MenuName}*/
-    @appkey nvarchar(50)='',
-    @BID nvarchar(50)='',${formParam}
-    @PageIndex nvarchar(50)='',
-    @PageSize nvarchar(50)='',
-    @OrderCol nvarchar(50)='',
-    @OrderType nvarchar(50)='',
-    @exceltype nvarchar(50)='',
-    @sEPTMenuNo nvarchar(50)='${menu.MenuNo}',
-    @lang nvarchar(50)='',
-    @debug nvarchar(50)='',
-    @LoginUID nvarchar(50)='',
-    @SessionUid nvarchar(50)='',
-    @UserID nvarchar(50),
-    @ErrorCode nvarchar(50) out,
-    @retmsg nvarchar(4000) out
-    )
-    as
-    begin
-    declare  @BegindateTest datetime,@EnddateTest datetime
-    select  @BegindateTest=getdate()
-    set @ErrorCode=''
-    set @retmsg=''
-    BEGIN TRY
-      /*浜嬪姟鎿嶄綔*/
-      BEGIN TRAN
-        /*鍏蜂綋涓氬姟鎿嶄綔*/
-        
-        /* 
-        select top 10 * from sProcExcep order by id desc
-        
-        declare @UserName  nvarchar(50),@FullName nvarchar(50)
-        
-        select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID
-        ${form}
-        if 1=2
-        begin
-          set @ErrorCode='E'
-          set @retmsg='鍦ㄦ鍐欐姤閿�'
-          goto GOTO_RETURN
-        end
-        
-        insert into sNote (remark,createuserid,CreateUser,CreateStaff)
-        select '鍦ㄦ鍐欐棩蹇�',@UserID,@UserName,@FullName
-        */
-        
-      COMMIT TRAN
-      SET NOCOUNT ON
-      RETURN
-    END TRY
-    BEGIN CATCH
-      /*閿欒澶勭悊*/
-      ROLLBACK TRAN
-      DECLARE @ErrorMessage NVARCHAR(4000);
-      DECLARE @ErrorSeverity INT;
-      DECLARE @ErrorState INT;
-      
-      /*鎶婅嚜瀹氫箟鐨勫弸濂界殑閿欒淇℃伅鎻愮ず鍔犱笂*/
-      set @ErrorCode=cast(ERROR_NUMBER() as nvarchar(50))
-      SET @retmsg=ERROR_MESSAGE();
-      SELECT @ErrorMessage=ERROR_MESSAGE(),
-        @ErrorSeverity=ERROR_SEVERITY(),
-        @ErrorState=ERROR_STATE();
-        
-      RAISERROR(@ErrorMessage, /*-- Message text.*/
-        @ErrorSeverity, /*-- Severity.*/
-        @ErrorState  /*-- State.*/
-      );
-    END CATCH
-    
-    GOTO_RETURN:
-      ROLLBACK TRAN
-      
-    END`
-
-    Ltext = Ltext.replace(/\n\s{4}/ig, 'mchr13k')
-
-    return Ltext
-  }
-
-  /**
-   * @description 鍒涘缓瀛樺偍杩囩▼
-   * @return {String}
-   */
-  static getfunc (param, btn, menu, config) {
-    let form = ''
-    let formParam = ''
-    let _vars = ['bid', 'septmenuno', 'lang', 'debug', 'loginuid', 'sessionuid', 'userid', 'errorcode', 'retmsg']
-    let columns = config.columns
-    let primaryKey = config.setting.primaryKey || 'ID'
-
-    if (!_vars.includes(primaryKey.toLowerCase())) {
-      _vars.push(primaryKey.toLowerCase())
-      let _type = '50'
-      if (btn.Ot === 'requiredOnce') { // 澶氳鎷兼帴鏃讹紝涓婚敭璁句负max
-        _type = 'max'
-      }
-      formParam = `mchr13k@${primaryKey} nvarchar(${_type})='',`
-    }
-
-    if (param.fields && param.fields.length > 0) {
-      let _fields = []
-      param.fields.forEach(item => {
-        if (item.field) {
-          let type = ''
-          if (item.type.match(/date/ig)) {
-            type = 'datetime=null'
-          } else if (item.type === 'number') {
-            type = `decimal(18,${item.decimal})=0`
-          } else {
-            type = 'nvarchar(50)=\'\''
-          }
-
-          if (!_vars.includes(item.field.toLowerCase())) {
-            _vars.push(item.field.toLowerCase())
-            formParam = formParam + `mchr13k@${item.field} ${type},`
-          }
-
-          _fields.push(item.field)
-        }
-      })
-
-      let field1 = _fields.join(',')
-      let field2 = _fields.join(',@')
-      let field3 = _fields.map(cell => {
-        return cell + '=@' + cell
-      })
-
-      field2 = field2 ? '@' + field2 : ''
-      field3 = field3.join(',')
-
-      form = `
-        insert into ${param.name} (${field1},createuserid) select ${field2},@UserID
-        
-        update ${param.name} set ${field3},modifydate=getdate(),modifyuserid=@UserID
-      `
-    } else if (btn.OpenType === 'prompt' || btn.OpenType === 'exec') {
-      form = `
-        update ${param.name} set ModifyDate=getdate(),ModifyUserID=@UserID where ${primaryKey}=@${primaryKey}
-      `
-    }
-
-    if (columns) {
-      let _col = []
-      let _field = []
-      columns.forEach(col => {
-        if (col.field) {
-          if (col.type === 'number') {
-            _col.push(col.field + ' decimal(18,2)')
-          } else {
-            _col.push(col.field + ' nvarchar(50)')
-          }
-          _field.push(col.field)
-        }
-      })
-      _col = _col.join(',')
-      _field = _field.join(',')
-
-      form = form + `
-        declare @dc table (${_col})
-        
-        insert into @dc (${_field})
-
-        @tableid ='${menu.MenuID}'
-      `
-    }
-
-    // 鎵撳嵃鑷畾涔夋ā鏉垮瓧娈垫彁绀�
-    let _printRemark = ''
-    if (btn.funcType === 'print') {
-      _printRemark = '/* 鑷畾涔夋暟鎹墦鍗版ā鏉挎椂锛岃浣跨敤TemplateID瀛楁 */'
-    }
-
-    let Ltext = `create proc ${param.funcName}
-    ( /*${menu.MenuName}  ${btn.label}*/
-    @appkey nvarchar(50)='',
-    @BID nvarchar(50)='',${formParam}
-    @sEPTMenuNo nvarchar(50)='${param.menuNo}',
-    @lang nvarchar(50)='',
-    @debug nvarchar(50)='',
-    @LoginUID nvarchar(50)='',
-    @SessionUid nvarchar(50)='',
-    @UserID nvarchar(50),
-    @ErrorCode nvarchar(50) out,
-    @retmsg nvarchar(4000) out
-    )
-    as
-    begin
-    declare  @BegindateTest datetime,@EnddateTest datetime
-    select  @BegindateTest=getdate()
-    set @ErrorCode=''
-    set @retmsg=''
-    BEGIN TRY
-      /*浜嬪姟鎿嶄綔*/
-      BEGIN TRAN
-        /*鍏蜂綋涓氬姟鎿嶄綔*/
-        ${_printRemark}
-        /* 
-        select top 10 * from sProcExcep order by id desc
-        
-        declare @UserName  nvarchar(50),@FullName nvarchar(50)
-        
-        select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID
-        ${form}
-        if 1=2
-        begin
-          set @ErrorCode='E'
-          set @retmsg='鍦ㄦ鍐欐姤閿�'
-          goto GOTO_RETURN
-        end
-        
-        insert into sNote (remark,createuserid,CreateUser,CreateStaff)
-        select '鍦ㄦ鍐欐棩蹇�',@UserID,@UserName,@FullName
-        */
-        
-      COMMIT TRAN
-      SET NOCOUNT ON
-      RETURN
-    END TRY
-    BEGIN CATCH
-      /*閿欒澶勭悊*/
-      ROLLBACK TRAN
-      DECLARE @ErrorMessage NVARCHAR(4000);
-      DECLARE @ErrorSeverity INT;
-      DECLARE @ErrorState INT;
-      
-      /*鎶婅嚜瀹氫箟鐨勫弸濂界殑閿欒淇℃伅鎻愮ず鍔犱笂*/
-      set @ErrorCode=cast(ERROR_NUMBER() as nvarchar(50))
-      SET @retmsg=ERROR_MESSAGE();
-      SELECT @ErrorMessage=ERROR_MESSAGE(),
-        @ErrorSeverity=ERROR_SEVERITY(),
-        @ErrorState=ERROR_STATE();
-        
-      RAISERROR(@ErrorMessage, /*-- Message text.*/
-        @ErrorSeverity, /*-- Severity.*/
-        @ErrorState  /*-- State.*/
-      );
-    END CATCH
-    
-    GOTO_RETURN:
-      ROLLBACK TRAN
-      
-    END`
-
-    Ltext = Ltext.replace(/\n\s{4}/ig, 'mchr13k')
-
-    return Ltext
-  }
-
-  /**
-   * @description 鍒涘缓瀵煎叆瀛樺偍杩囩▼
-   * @return {String}
-   */
-  static getexcelInfunc (param, btn, menu) {
-    let _verify = btn.verify
-
-    let _uniquesql = ''
-    if (_verify.uniques && _verify.uniques.length > 0) {
-      _verify.uniques.forEach(unique => {
-        if (unique.status === 'false') return
-
-        let _fields = unique.field.split(',')
-        let _fields_ = _fields.map(_field => {
-          return `a.${_field}=b.${_field}`
-        })
-        _fields_ = _fields_.join(' and ')
-
-        if (unique.verifyType !== 'physical') {
-          _fields_ += ' and b.deleted=0'
-        }
-
-        _uniquesql += `
-        Set @tbid=''
-        Select top 1 @tbid=${_fields.join('+\' \'+')} from (select 1 as n,${unique.field} from @${btn.sheet} ) a group by ${unique.field} having sum(n)>1
-
-        If @tbid!=''
-        Begin
-          select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 閲嶅'
-          goto aaa
-        end
-
-        Set @tbid=''
-        Select top 1 @tbid=${_fields.join('+\' \'+')} from  @${btn.sheet} a
-        Inner join ${btn.sheet} b on ${_fields_}
-
-        If @tbid!=''
-        Begin
-          select @ErrorCode='${unique.errorCode}',@retmsg=@tbid+' 涓庡凡鏈夋暟鎹噸澶�'
-          goto aaa
-        end
-        `
-      })
-
-      if (_uniquesql) {
-        _uniquesql = `
-        Declare @tbid Nvarchar(512)
-        ${_uniquesql}`
-      }
-    }
-
-    let declarefields = []
-    let fields = []
-
-    _verify.columns.forEach(col => {
-      declarefields.push(`${col.Column} ${col.type}`)
-      fields.push(col.Column)
-    })
-
-    fields = fields.join(',')
-
-    let _sql = `declare @${btn.sheet} table (${declarefields.join(',')},jskey nvarchar(50))
-      Declare @UserName nvarchar(50),@FullName nvarchar(50)
-      
-      select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID
-      
-      Insert into @${btn.sheet} (${fields},jskey)
-
-      exec s_KeyWords_Replace
-      @LText=@LText, @BID=@BID,@LoginUID=@LoginUID,@SessionUid=@SessionUid,@UserID=@UserID,@ID=@ID
-      ${_uniquesql}
-      Insert into ${btn.sheet} (${fields},createuserid,createuser,createstaff,bid) 
-      Select ${fields},@userid,@username,@fullname,@BID From @${btn.sheet}
-
-      Delete @${btn.sheet}`
-
-    let Ltext = `create proc ${param.funcName}
-    ( /*${menu.MenuName}  ${btn.label}*/
-      @appkey nvarchar(50)='',
-      @ID nvarchar(50)='',
-      @BID nvarchar(50)='',
-      @Ltext nvarchar(max)='',
-      @sEPTMenuNo nvarchar(50)='${param.menuNo}', 
-      @secretkey nvarchar(50)='',
-      @timestamp nvarchar(50)='',
-      @lang nvarchar(50)='',
-      @LoginUID nvarchar(50)='',
-      @SessionUid nvarchar(50)='',
-      @UserID nvarchar(50), 
-      @ErrorCode nvarchar(50) out,
-      @retmsg nvarchar(4000) out
-    )
-    as
-    begin
-    declare @BegindateTest datetime,@EnddateTest datetime 
-    select @BegindateTest=getdate() 
-    set @ErrorCode=''
-    set @retmsg=''
-    BEGIN TRY
-      /*浜嬪姟鎿嶄綔*/
-      BEGIN TRAN
-        /*鍏蜂綋涓氬姟鎿嶄綔*/
-
-        /* 
-        ${_sql}
-        */
-        
-      COMMIT TRAN
-      SET NOCOUNT ON
-      RETURN
-    END TRY
-    BEGIN CATCH
-      /*閿欒澶勭悊*/
-      ROLLBACK TRAN
-      DECLARE @ErrorMessage NVARCHAR(4000);
-      DECLARE @ErrorSeverity INT;
-      DECLARE @ErrorState INT;
-      
-      /*鎶婅嚜瀹氫箟鐨勫弸濂界殑閿欒淇℃伅鎻愮ず鍔犱笂*/
-      set @ErrorCode=cast(ERROR_NUMBER() as nvarchar(50))
-      SET @retmsg=ERROR_MESSAGE();
-      SELECT @ErrorMessage=ERROR_MESSAGE(),
-        @ErrorSeverity=ERROR_SEVERITY(),
-        @ErrorState=ERROR_STATE();
-        
-      RAISERROR(@ErrorMessage, /*-- Message text.*/
-        @ErrorSeverity, /*-- Severity.*/
-        @ErrorState  /*-- State.*/
-      );
-    END CATCH
-    
-    GOTO_RETURN:
-      ROLLBACK TRAN
-      
-    END`
-
-    Ltext = Ltext.replace(/\n\s{4}/ig, 'mchr13k')
-
-    return Ltext
   }
 }
\ No newline at end of file

--
Gitblit v1.8.0