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 |  208 ++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 155 insertions(+), 53 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index ea19a1d..c861d4d 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -916,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,
@@ -1094,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 ? '*/' : ''},
@@ -1256,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) {
@@ -1353,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 ? '*/' : ''},
@@ -1510,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) {
@@ -1540,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 || {}
@@ -1789,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 += `
@@ -1866,7 +1963,6 @@
 
       if (!keys.includes(_key)) return // 琛ㄥ崟涓笉鍚崟鍙风敓鎴愬瓧娈�
 
-      let _ModularDetailCode = ''
       let _lpline = ''
       if (item.TypeCharOne === 'Lp') {
         if (_linkKey === 'bid' && BID) { // 鏇挎崲bid
@@ -1874,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}',
@@ -1939,11 +2031,6 @@
         _value.push(`${_labels[index] || ''}锛�${_val || ''}`)
       })
 
-      let _verifyType = ''
-      if (item.verifyType === 'logic') {
-        _verifyType = ' and deleted=0'
-      }
-
       if (!arr.includes(primaryKey.toLowerCase())) {
         _fieldValue.push(`${primaryKey} !='${primaryId}'`)
       }
@@ -1951,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(', ')} 宸插瓨鍦�'
@@ -2158,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++
       })
@@ -2491,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 : ''}
@@ -2598,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) {
@@ -2611,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) {
@@ -2709,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