From 58826d6f4eab9f8c9acf9fa8696f60039c645cfe Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期二, 20 八月 2024 18:18:00 +0800
Subject: [PATCH] 2024-08-20

---
 src/utils/utils.js |  391 +++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 289 insertions(+), 102 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 64d2720..c861d4d 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -854,24 +854,6 @@
   }
 
   /**
-   * @description 鑾峰彇浜戠鍥剧墖鐪熷疄璺緞
-   * @return {String}    url 鍥剧墖璺緞
-   */
-  static getcloudurl (url) {
-    if (!url) return ''
-    
-    let baseurl = ''
-    
-    if (window.GLOB.cloudServiceApi) {
-      baseurl = window.GLOB.cloudServiceApi.replace(/webapi(.*)$/, '')
-    } else {
-      baseurl = window.GLOB.baseurl
-    }
-
-    return url.match(/^http/) || url.match(/^\/\//) ? url : baseurl + url
-  }
-
-  /**
    * @description 鑾峰彇涓嬫媺鎼滅储鏌ヨ鏉′欢
    * @return {String} item   鎼滅储鏉′欢淇℃伅
    */
@@ -934,6 +916,7 @@
     sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
     sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
     sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+    sql = sql.replace(/@lang@/ig, `'${sessionStorage.getItem('lang')}'`)
 
     return {
       sql: sql,
@@ -1066,12 +1049,18 @@
           }
         } else if (typeof(val) === 'string') {
           val = val.replace(/(^\s+$)|\t+|\v+/ig, '')
-          if (!val && col.required === 'true') {           // 鏃堕棿蹇呭~鏍¢獙
-            errors.push(_position + '鍐呭涓嶅彲涓虹┖')
-          } else if (val && !/^[1-9][0-9]{3}/.test(val)) { // 鏃堕棿姝e垯鏍¢獙
+          if (!val) {
+            if (col.required === 'true') {         // 鏃堕棿蹇呭~鏍¢獙
+              errors.push(_position + '鍐呭涓嶅彲涓虹┖')
+            } else if (col.type === 'date') {
+              val = '1949-10-01'
+            } else if (col.type === 'datetime') {
+              val = '1949-10-01 00:00:00'
+            }
+          } else if (!/^[1-9][0-9]{3}/.test(val)) { // 鏃堕棿姝e垯鏍¢獙
             errors.push(_position + '鏃堕棿鏍煎紡閿欒')
           }
-        } else {                                           // 鏃堕棿鏍煎紡閿欒
+        } else {                                    // 鏃堕棿鏍煎紡閿欒
           errors.push(_position + '鏃堕棿鏍煎紡閿欒')
         }
       }
@@ -1106,6 +1095,7 @@
       {reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
       {reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
       {reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
+      {reg: /@lang@/ig, value: `'${sessionStorage.getItem('lang')}'`},
       {reg: /@typename@/ig, value: `'admin'`},
       {reg: /\$@/ig, value: isDM ? '/*' : ''},
       {reg: /@\$/ig, value: isDM ? '*/' : ''},
@@ -1146,9 +1136,15 @@
     let _uniquesql = ''
     if (btn.uniques && btn.uniques.length > 0) {
       let textFields = []
+      let numberFields = []
+      let dateFields = []
       btn.columns.forEach((col) => {
-        if (/^Nvarchar/ig.test(col.type)) {
+        if (/Nvarchar/ig.test(col.type)) {
           textFields.push(col.Column)
+        } else if (/Decimal|int/ig.test(col.type)) {
+          numberFields.push(col.Column)
+        } else if (/date/ig.test(col.type)) {
+          dateFields.push(col.Column)
         }
       })
 
@@ -1157,13 +1153,17 @@
 
         let _fields = unique.field.split(',')
         let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`)
-        let _afields = _fields.map(_field => `a.${_field}`)
+        
         _fields_ = _fields_.join(' and ')
 
         let _where = []
         _fields.forEach(f => {
           if (textFields.includes(f)) {
             _where.push(`${f}!=''`)
+          } else if (numberFields.includes(f)) {
+            _where.push(`${f}!=0`)
+          } else if (dateFields.includes(f)) {
+            _where.push(`${f}>'1949-10-01'`)
           }
         })
         _where = _where.length ? `where ${_where.join(' and ')} ` : ''
@@ -1171,6 +1171,20 @@
         if (unique.verifyType === 'logic' || unique.verifyType === 'logic_temp') {
           _fields_ += ' and b.deleted=0'
         }
+
+        let _afields = []
+        _fields = _fields.map(f => {
+          if (numberFields.includes(f)) {
+            _afields.push(`cast(a.${f} as nvarchar(50))`)
+            return `cast(${f} as nvarchar(50))`
+          } else if (dateFields.includes(f)) {
+            _afields.push(`CONVERT(nvarchar(50), a.${f}, 21)`)
+            return `CONVERT(nvarchar(50), ${f}, 21)`
+          }
+          _afields.push(`a.${f}`)
+
+          return f
+        })
 
         _uniquesql += `
       /* 閲嶅鎬ч獙璇� */
@@ -1244,18 +1258,90 @@
 
       ${_uniquesql}
       ${_prevCustomScript}
-      ${_insert}
+      ${_insert}`
+
+    if (item.$process && btn.workFlow === 'true' && window.GLOB.UserCacheMap.has(item.$flowId)) {
+      let flow = window.GLOB.UserCacheMap.get(item.$flowId)
+      let target = flow.cells.filter(cell => cell.mknode === 'start')[0]
+      
+      let flowsql = ''
+      let status = 0
+      let statusName = ''
+      let detailId = ''
+      let work_grade = sessionStorage.getItem('work_grade') || 0
+  
+      if (target) {
+        detailId = target.id
+        status = target.mkdata.status
+        statusName = target.mkdata.statusName
+      }
+  
+      if (!target) {
+        status = 0
+        statusName = '寮傚父'
+  
+        flowsql = `
+        /* 宸ヤ綔娴佸紓甯竤ql */
+        select @ErrorCode='E',@retmsg='宸ヤ綔娴佹棤寮�濮嬭妭鐐�' goto aaa
+        `
+      } else if (btn.flowSql === 'true') {
+        flowsql = `
+        /* 宸ヤ綔娴侀粯璁ql */
+        insert into s_my_works_flow (works_flow_id,works_flow_code,works_flow_name,works_flow_param,status,statusname,work_group,works_flow_detail_id,work_grade,bid,createuserid,CreateUser,CreateStaff,upid)
+        select jskey,@works_flow_code@,@works_flow_name@,@works_flow_param@,@status@,@statusname@,@work_group@,@works_flow_detail_id@,@work_grade@,@bid@,@UserID@,@UserName,@FullName,@time_id@
+        from #${sheet}
+                                                                   
+        insert into s_my_works_flow_log (works_flow_id,works_flow_code,works_flow_name,works_flow_param,status,statusname,works_flow_detail_id,work_group,work_grade,bid,createuserid,CreateUser,CreateStaff,upid)
+        select jskey,@works_flow_code@,@works_flow_name@ ,@works_flow_param@,@status@,@statusname@,@works_flow_detail_id@,@work_group@,@work_grade@,@bid@,@UserID@,@UserName,@FullName,@time_id@
+        from #${sheet}
+                                                                   
+        insert into s_my_works_flow_notice (works_flow_id,works_flow_code,works_flow_detail_id,userid,notice_type,createuserid,CreateUser,CreateStaff,upid)
+        select jskey,@works_flow_code@,@works_flow_detail_id@,@userid@,@start_type@,@userid@,@UserName,@FullName,@time_id@
+        from #${sheet}
+                                                                   
+        insert into s_my_works_flow_role (works_flow_id,works_flow_code,userid,works_flow_detail_id,createuserid,CreateUser,CreateStaff,upid,typecharone)
+        select jskey,@works_flow_code@,@userid@,@works_flow_detail_id@,@userid@,@UserName,@FullName,@time_id@,'begin'
+        from #${sheet}
+        `
+      }
+      sql += `
+      ${flowsql}
       ${_backCustomScript}
 
       drop table #${sheet}
       
       aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
 
+      sql = sql.replace(/@start_type@/ig, `'寮�濮�'`)
+      sql = sql.replace(/@works_flow_code@/ig, `'${flow.flow_code}'`)
+      sql = sql.replace(/@works_flow_name@/ig, `'${flow.flow_name}'`)
+  
+      if (target) {
+        let label = target.attrs && target.attrs.text && target.attrs.text.text ? target.attrs.text.text : ''
+        let msg = {...target.mkdata, label: label, id: target.id, checkIds: [], checkUsers: []}
+        sql = sql.replace(/@works_flow_param@/ig, `'${window.btoa(window.encodeURIComponent(JSON.stringify(msg)))}'`)
+      } else {
+        sql = sql.replace(/@works_flow_param@/ig, `''`)
+      }
+      sql = sql.replace(/@works_flow_detail_id@/ig, `'${detailId}'`)
+      sql = sql.replace(/@status@/ig, `'${status}'`)
+      sql = sql.replace(/@statusname@/ig, `'${statusName}'`)
+      sql = sql.replace(/@work_group@/ig, `'${sessionStorage.getItem('work_group') || ''}'`)
+      sql = sql.replace(/@work_grade@/ig, `'${work_grade}'`)
+    } else {
+      sql += `
+      ${_backCustomScript}
+
+      drop table #${sheet}
+      
+      aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
+    }
+
     sql = sql.replace(/\n\s{6}/ig, '\n')
 
     if (window.GLOB.debugger === true) {
-      console.info('%c' + item.logLabel, 'color: blue')
-      console.info(sql)
+      window.mkInfo('%c' + item.logLabel, 'color: blue')
+      window.mkInfo(sql)
     }
   } else {
     for(let i = 0; i < _Ltext.length; i += 20) {
@@ -1341,6 +1427,7 @@
       {reg: /@SessionUid@/ig, value: `'${localStorage.getItem('SessionUid') || ''}'`},
       {reg: /@UserID@/ig, value: `'${sessionStorage.getItem('UserID') || ''}'`},
       {reg: /@Appkey@/ig, value: `'${window.GLOB.appkey || ''}'`},
+      {reg: /@lang@/ig, value: `'${sessionStorage.getItem('lang')}'`},
       {reg: /@typename@/ig, value: `'admin'`},
       {reg: /\$@/ig, value: isDM ? '/*' : ''},
       {reg: /@\$/ig, value: isDM ? '*/' : ''},
@@ -1380,17 +1467,54 @@
 
     let _uniquesql = ''
     if (btn.uniques && btn.uniques.length > 0) {
+      let textFields = []
+      let numberFields = []
+      let dateFields = []
+      columns.forEach((col) => {
+        if (/Nvarchar/ig.test(col.datatype)) {
+          textFields.push(col.field)
+        } else if (/Decimal|int/ig.test(col.datatype)) {
+          numberFields.push(col.field)
+        } else if (/date/ig.test(col.datatype)) {
+          dateFields.push(col.field)
+        }
+      })
       btn.uniques.forEach(unique => {
         if (unique.status === 'false' || !unique.verifyType) return
 
         let _fields = unique.field.split(',')
         let _fields_ = _fields.map(_field => `a.${_field}=b.${_field}`)
-        let _afields = _fields.map(_field => `a.${_field}`)
         _fields_ = _fields_.join(' and ')
+
+        let _where = []
+        _fields.forEach(f => {
+          if (textFields.includes(f)) {
+            _where.push(`${f}!=''`)
+          } else if (numberFields.includes(f)) {
+            _where.push(`${f}!=0`)
+          } else if (dateFields.includes(f)) {
+            _where.push(`${f}>'1949-10-01'`)
+          }
+        })
+        _where = _where.length ? `where ${_where.join(' and ')} ` : ''
 
         if (unique.verifyType === 'logic' || unique.verifyType === 'logic_temp') {
           _fields_ += ' and b.deleted=0'
         }
+
+        let _afields = []
+        _fields = _fields.map(f => {
+          if (numberFields.includes(f)) {
+            _afields.push(`cast(a.${f} as nvarchar(50))`)
+            return `cast(${f} as nvarchar(50))`
+          } else if (dateFields.includes(f)) {
+            _afields.push(`CONVERT(nvarchar(50), a.${f}, 21)`)
+            return `CONVERT(nvarchar(50), ${f}, 21)`
+          }
+          _afields.push(`a.${f}`)
+
+          return f
+        })
 
         _uniquesql += `
       /* 閲嶅鎬ч獙璇� */
@@ -1404,7 +1528,7 @@
       end
       
       ${unique.verifyType.indexOf('temp') === -1 ? `Set @tbid=''
-      Select top 1 @tbid=${_afields.join('+\' \'+')} from  #${sheet} a Inner join ${database}${sheet} b on ${_fields_}
+      Select top 1 @tbid=${_afields.join('+\' \'+')} from ${_where ? `(select * from #${sheet} ${_where})` : `#${sheet}`} a Inner join ${database}${sheet} b on ${_fields_}
       
       If @tbid!=''
       Begin
@@ -1461,8 +1585,8 @@
     sql = sql.replace(/\n\s{6}/ig, '\n')
 
     if (window.GLOB.debugger === true) {
-      console.info('%c' + btn.logLabel, 'color: blue')
-      console.info(sql)
+      window.mkInfo('%c' + btn.logLabel, 'color: blue')
+      window.mkInfo(sql)
     }
   } else {
     for(let i = 0; i < _Ltext.length; i += 20) {
@@ -1491,7 +1615,7 @@
  * @return {Array}   columns   鏄剧ず鍒�
  * @return {Boolean} retmsg    鏄惁闇�瑕佹暟鎹繑鍥�
  */
-export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false, moduleParams) {
+export function getSysDefaultSql (btn, setting, formdata, param, data, columns, retmsg = false) {
   let primaryId = param.ID
   let BID = param.BID || ''
   let verify = btn.verify || {}
@@ -1740,9 +1864,31 @@
   }
 
   // 澶辨晥楠岃瘉锛屾坊鍔犳暟鎹椂涓嶇敤
-  if (verify.invalid === 'true' && moduleParams && moduleParams.dataresource) {
-    let datasource = moduleParams.dataresource
-    let customScript = moduleParams.customScript || ''
+  if (verify.invalid === 'true' && setting.dataresource) {
+    let datasource = setting.dataresource
+    let customScript = setting.customScript || ''
+
+    let regoptions = [{
+      reg: new RegExp('@userName@', 'ig'),
+      value: `'${sessionStorage.getItem('User_Name') || ''}'`
+    }, {
+      reg: new RegExp('@fullName@', 'ig'),
+      value: `'${sessionStorage.getItem('Full_Name') || ''}'`
+    }, {
+      reg: new RegExp('@orderBy@', 'ig'),
+      value: setting.order || primaryKey
+    }, {
+      reg: new RegExp('@pageSize@', 'ig'),
+      value: 1
+    }, {
+      reg: new RegExp('@pageIndex@', 'ig'),
+      value: 1
+    }]
+
+    regoptions.forEach(item => {
+      datasource = datasource.replace(item.reg, item.value)
+      customScript = customScript.replace(item.reg, item.value)
+    })
 
     if (customScript) {
       _sql += `
@@ -1817,7 +1963,6 @@
 
       if (!keys.includes(_key)) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈�
 
-      let _ModularDetailCode = ''
       let _lpline = ''
       if (item.TypeCharOne === 'Lp') {
         if (_linkKey === 'bid' && BID) { // 鏇挎崲bid
@@ -1825,33 +1970,29 @@
         } else {
           _lpline = `set @ModularDetailCode= 'Lp'+ right('${item.mark || btn.uuid}'+@${_linkKey},48)`
         }
-        _ModularDetailCode = '@ModularDetailCode'
       } else if (item.TypeCharOne === 'BN') {
-        let _val = ''
         if (_linkKey === 'bid' && BID) { // 鏇挎崲bid
-          _val = BID
-        } else if (_data.hasOwnProperty(_linkKey)) {
-          _val = _data[_linkKey]
+          _lpline = `set @ModularDetailCode= 'BN'+ right(@BID@,48)`
+        } else {
+          _lpline = `set @ModularDetailCode= 'BN'+ right(@${_linkKey},48)`
         }
-        _ModularDetailCode = `'${item.TypeCharOne + _val}'`
       } else {
-        _ModularDetailCode = `'${item.ModularDetailCode}'`
+        _lpline = `set @ModularDetailCode= right('${item.ModularDetailCode}',50)`
       }
 
-      let _declare = ''
+      // let _declare = ''
 
-      if (!_vars.includes(_key)) {
-        _declare = `Declare @${_key} nvarchar(50)`
-        _vars.push(_key)
-      }
+      // if (!_vars.includes(_key)) {
+      //   _declare = `Declare @${_key} nvarchar(50)`
+      //   _vars.push(_key)
+      // }
 
       _billcodesSql += `
       /* 鍗曞彿鐢熸垚 */
-      ${_declare}
       select @BillCode='', @${_key}='', @ModularDetailCode=''
       ${_lpline}
       exec s_get_BillCode
-        @ModularDetailCode=${_ModularDetailCode},
+        @ModularDetailCode=@ModularDetailCode,
         @Type=${item.Type},
         @TypeCharOne='${item.TypeCharOne}',
         @TypeCharTwo ='${item.TypeCharTwo}',
@@ -1885,15 +2026,10 @@
         if (_key === 'bid' && !_val) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺
           _val = BID
         }
-        
+
         _fieldValue.push(`${_key}='${_val}'`)
         _value.push(`${_labels[index] || ''}锛�${_val || ''}`)
       })
-
-      let _verifyType = ''
-      if (item.verifyType === 'logic') {
-        _verifyType = ' and deleted=0'
-      }
 
       if (!arr.includes(primaryKey.toLowerCase())) {
         _fieldValue.push(`${primaryKey} !='${primaryId}'`)
@@ -1902,7 +2038,7 @@
       _sql += `
       /* 鍞竴鎬ч獙璇� */
       select @tbid='', @ErrorCode='',@retmsg=''
-      select @tbid='X' from ${btn.sql} where ${_fieldValue.join(' and ')}${_verifyType}
+      select @tbid='X' from ${btn.sql} where ${_fieldValue.join(' and ')}${item.verifyType === 'logic' ? ' and deleted=0' : ''}
       If @tbid!=''
       Begin
         select @ErrorCode='${item.errorCode}',@retmsg='${_value.join(', ')} 宸插瓨鍦�'
@@ -2109,7 +2245,7 @@
     if (data && columns && columns.length > 0 && btn.Ot !== 'notRequired') {
       let _index = 0
       columns.forEach(col => {
-        if (!col.field || col.Hide === 'true' || _index >= 4) return
+        if (!col.field || col.Hide === 'true' || _index >= 4 || col.field === primaryKey) return
         _msg += col.label + '=' + data[col.field] + ','
         _index++
       })
@@ -2149,6 +2285,7 @@
     let status = 0
     let statusName = ''
     let detailId = ''
+    let sign = ''
     let error = ''
     let userid = sessionStorage.getItem('UserID') || ''
     let checkIds = []
@@ -2197,14 +2334,31 @@
                 }
               })
               if (!error) {
-                line = lines[0]
+                lines = lines.filter(cell => {
+                  if (cell.mkdata.seniorCondition === 'open' && !line) {
+                    cell.mkdata.seniorbers && cell.mkdata.seniorbers.forEach(per => {
+                      if (per.worker_id === userid) {
+                        line = cell
+                      }
+                    })
+  
+                    return false
+                  }
+  
+                  return true
+                })
+
+                if (!line) {
+                  line = lines[0]
+                }
               }
             } else if (!_data.hasOwnProperty(branchKey)) {
               error = '淇℃伅涓棤娴佺▼鎺у埗瀛楁銆�'
             } else {
-              let equalLine = null
-              let gtOrLtLine = []
-              let unEqualLine = null
+              let _def_lines = []
+              let _equ_lines = []
+              let _unequ_lines = []
+              let _or_lines = []
               let branchVal = _data[branchKey]
 
               if (branchVal && typeof(branchVal) === 'string' && !isNaN(branchVal)) {
@@ -2213,45 +2367,58 @@
 
               lines.forEach(item => {
                 if (item.mkdata.execCondition !== 'open') {
-                  line = item
+                  _def_lines.push(item)
                 } else {
                   if (item.mkdata.match === '=') {
                     if (item.mkdata.matchVal === branchVal + '') {
-                      equalLine = item
+                      _equ_lines.push(item)
                     }
                   } else if (item.mkdata.match === '!=') {
                     if (item.mkdata.matchVal !== branchVal + '') {
-                      unEqualLine = item
+                      _unequ_lines.push(item)
                     }
                   } else {
                     if (item.mkdata.match === '<') {
                       if (item.mkdata.matchVal < branchVal) {
-                        gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
+                        _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
                       }
                     } else if (item.mkdata.match === '>') {
                       if (item.mkdata.matchVal > branchVal) {
-                        gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
+                        _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
                       }
                     } else if (item.mkdata.match === '<=') {
                       if (item.mkdata.matchVal <= branchVal) {
-                        gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
+                        _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
                       }
                     } else if (item.mkdata.match === '>=') {
                       if (item.mkdata.matchVal >= branchVal) {
-                        gtOrLtLine.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
+                        _or_lines.push({...item, dist: Math.abs(item.mkdata.matchVal - branchVal)})
                       }
                     }
                   }
                 }
               })
 
-              if (equalLine) {
-                line = equalLine
-              } else if (gtOrLtLine.length > 0) {
-                gtOrLtLine.sort((a, b) => a.dist - b.dist)
-                line = gtOrLtLine[0]
-              } else if (unEqualLine) {
-                line = unEqualLine
+              _or_lines.sort((a, b) => a.dist - b.dist)
+
+              let _lines = [..._equ_lines, ..._or_lines, ..._unequ_lines, ..._def_lines]
+
+              _lines = _lines.filter(cell => {
+                if (cell.mkdata.seniorCondition === 'open' && !line) {
+                  cell.mkdata.seniorbers && cell.mkdata.seniorbers.forEach(per => {
+                    if (per.worker_id === userid) {
+                      line = cell
+                    }
+                  })
+
+                  return false
+                }
+
+                return true
+              })
+              
+              if (!line) {
+                line = _lines[0]
               }
             }
           }
@@ -2264,6 +2431,7 @@
         detailId = line.id
         status = line.mkdata.status
         statusName = line.mkdata.statusName
+        sign = line.mkdata.seniorSign || ''
         target = flow.cells.filter(cell => cell.id === line.target.cell)[0]
 
         line.mkdata.members && line.mkdata.members.forEach(item => {
@@ -2288,7 +2456,7 @@
 
         if (!target) {
           error = '鏈煡璇㈠埌宸ヤ綔娴佺洰鏍囪妭鐐�'
-        } else if (checkIds.length === 0 && line.mknode !== 'startEdge' && line.mknode !== 'endEdge') {
+        } else if (checkIds.length === 0 && !['startEdge', 'endEdge', 'throughEdge'].includes(line.mknode)) {
           error = '鏈幏鍙栧埌涓嬩竴姝ュ鎵逛汉'
         } else if (line.approvalMethod === 'countersign' && (!node.checkIds || !node.checkIds.includes(userid))) {
           error = '褰撳墠鐢ㄦ埛涓嶅湪瀹℃壒浜哄垪琛ㄤ腑'
@@ -2410,15 +2578,29 @@
       begin
           select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and userid=@userid@
 
-          if @retmsg !='' 
+          if @retmsg !=''
           begin
               select @ErrorCode='E', @retmsg='褰撳墠鍗曟嵁宸插鏍革紝璇峰埛鏂板悗閲嶈瘯'
-            goto aaa 
+            goto aaa
+          end
+
+          if @dataM@ !='' 
+          begin
+            set @retmsg =''
+            select @retmsg='X' from s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0  
+
+            if @retmsg != ''
+            begin
+                goto goto_mk
+            end
           end
 
           select @retmsg='椤甸潰鏁版嵁宸叉洿鏂帮紝鎴栨病鏈夊綋鍓嶅崟鎹殑瀹℃壒鏉冮檺'
             goto aaa 
-      end
+      end 
+
+      goto_mk:
+
       set @retmsg=''
 
       update s_my_works_flow set status=@status@,statusname=@statusname@,works_flow_param=@works_flow_param@,works_flow_detail_id=@works_flow_detail_id@,modifydate=getdate(),upid=@time_id@,modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname${verify.flowRemark ? ',remark=@' + verify.flowRemark : ''}
@@ -2453,6 +2635,12 @@
       }
     }
 
+    if (_backCustomScript) {
+      _sql += _backCustomScript
+    }
+
+    _sql = _sql.replace(/@works_flow_sign@/ig, `'${sign}'`)
+
     _sql = _sql.replace(/@check_userids@/ig, `'${checkIds.join(',')}'`)
     _sql = _sql.replace(/@notice_userids@/ig, `'${noticeIds.join(',')}'`)
 
@@ -2475,9 +2663,7 @@
     _sql = _sql.replace(/@statusname@/ig, `'${statusName}'`)
     _sql = _sql.replace(/@work_group@/ig, `'${sessionStorage.getItem('work_group') || ''}'`)
     _sql = _sql.replace(/@work_grade@/ig, `'${work_grade}'`)
-  }
-
-  if (_backCustomScript) {
+  } else if (_backCustomScript) {
     _sql += _backCustomScript
   }
 
@@ -2513,6 +2699,7 @@
   _sql = _sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
   _sql = _sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
   _sql = _sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
+  _sql = _sql.replace(/@lang@/ig, `'${sessionStorage.getItem('lang')}'`)
   _sql = _sql.replace(/@typename@/ig, `'admin'`)
 
   if (window.GLOB.externalDatabase !== null) {
@@ -2526,8 +2713,8 @@
   }
 
   if (window.GLOB.debugger === true) {
-    console.info('%c' + btn.logLabel, 'color: blue')
-    console.info(_sql)
+    window.mkInfo('%c' + btn.logLabel, 'color: blue')
+    window.mkInfo(_sql)
   }
 
   if (retmsg) {
@@ -2624,23 +2811,23 @@
 /**
  * @description 鐢熸垚鏇挎崲鍑芥暟鍒楄〃
  */
-export function setGLOBFuncs () {
-  window.GLOB.funcs = []
-  if (!window.GLOB.IndexDB) {
-    return
-  }
+// export function setGLOBFuncs () {
+//   window.GLOB.funcs = []
+//   if (!window.GLOB.IndexDB) {
+//     return
+//   }
 
-  let objectStore = window.GLOB.IndexDB.transaction('funcs').objectStore('funcs')
+//   let objectStore = window.GLOB.IndexDB.transaction('funcs').objectStore('funcs')
 
-  objectStore.openCursor().onsuccess = (event) => {
-    let cursor = event.target.result
+//   objectStore.openCursor().onsuccess = (event) => {
+//     let cursor = event.target.result
 
-    if (cursor) {
-      window.GLOB.funcs.push({
-        func_code: cursor.value.func_code,
-        key_sql: window.decodeURIComponent(window.atob(cursor.value.key_sql))
-      })
-      cursor.continue()
-    }
-  }
-}
\ No newline at end of file
+//     if (cursor) {
+//       window.GLOB.funcs.push({
+//         func_code: cursor.value.func_code,
+//         key_sql: window.decodeURIComponent(window.atob(cursor.value.key_sql))
+//       })
+//       cursor.continue()
+//     }
+//   }
+// }
\ No newline at end of file

--
Gitblit v1.8.0