From 76251922200560a63d0703ce2f936246ce8bc46e Mon Sep 17 00:00:00 2001
From: king <18310653075@163.com>
Date: 星期四, 28 九月 2023 09:42:38 +0800
Subject: [PATCH] 2023-09-28

---
 src/utils/utils.js |  183 ++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 161 insertions(+), 22 deletions(-)

diff --git a/src/utils/utils.js b/src/utils/utils.js
index 247f4b3..5f0598e 100644
--- a/src/utils/utils.js
+++ b/src/utils/utils.js
@@ -138,7 +138,7 @@
     ]
     
     if (type === 'customscript') {
-      chars = chars.filter(char => !['insert', 'delete', 'update', 'set', 'if', 'exec'].includes(char.key))
+      chars = chars.filter(char => !['create', 'insert', 'delete', 'update', 'set', 'drop', 'if', 'exec'].includes(char.key))
     }
 
     let error = ''
@@ -407,6 +407,10 @@
       }
 
       if (item.type === 'text' || item.type === 'select') {
+        if (/@username@|@fullName@/ig.test(item.initval)) {
+          item.initval = item.initval.replace(/@username@/ig, sessionStorage.getItem('User_Name') || '').replace(/@fullName@/ig, sessionStorage.getItem('Full_Name') || '')
+          item.oriInitval = item.initval
+        }
         if (/,/.test(item.field)) {
           item.field.split(',').forEach(field => {
             keys.push(field.toLowerCase())
@@ -546,8 +550,16 @@
           }
         }
 
-        newsearches[item.key] = _startval
-        newsearches[item.key + '1'] = _endval
+        let _skey = item.key
+        let _ekey = item.key + '1'
+
+        if (/,/.test(item.key)) {
+          _skey = item.key.split(',')[0]
+          _ekey = item.key.split(',')[1]
+        }
+
+        newsearches[_skey] = _startval
+        newsearches[_ekey] = _endval
       } else if (item.type === 'text' || item.type === 'select') {
         item.key.split(',').forEach(field => { // 缁煎悎鎼滅储锛屾墍瀛楁鎷兼帴
           newsearches[field] = item.value
@@ -638,7 +650,15 @@
           _endval = val[1] + '.000'
         }
 
-        searchText.push('(' + item.key + ' >= \'' + _startval + '\' AND ' + item.key + ' < \'' + _endval + '\')')
+        let _skey = item.key
+        let _ekey = item.key
+
+        if (/,/.test(item.key)) {
+          _skey = item.key.split(',')[0]
+          _ekey = item.key.split(',')[1]
+        }
+
+        searchText.push('(' + _skey + ' >= \'' + _startval + '\' AND ' + _ekey + ' < \'' + _endval + '\')')
       } else if (item.type === 'range') {
         let val = item.value.split(',')
 
@@ -854,7 +874,9 @@
       sql = sql.replace(/@db@/ig, window.GLOB.externalDatabase)
     }
 
+    sql = sql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
     sql = sql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
+    sql = sql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
     sql = sql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
 
     return {
@@ -1148,6 +1170,7 @@
     sql = sql.replace(/\n\s{6}/ig, '\n')
 
     if (window.GLOB.debugger === true) {
+      console.info('%c' + item.logLabel, 'color: blue')
       console.info(sql)
     }
   } else {
@@ -1354,6 +1377,7 @@
     sql = sql.replace(/\n\s{6}/ig, '\n')
 
     if (window.GLOB.debugger === true) {
+      console.info('%c' + btn.logLabel, 'color: blue')
       console.info(sql)
     }
   } else {
@@ -1558,7 +1582,7 @@
       Declare @tbid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000),@BillCode nvarchar(50),@BVoucher nvarchar(50),@FIBVoucherDate nvarchar(50), @FiYear nvarchar(50),@ModularDetailCode nvarchar(50), @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),@mk_deleted int,@bid nvarchar(50)${_declarefields}
     `
 
-  let userName = sessionStorage.getItem('User_Name') || ''
+  let userName = sessionStorage.getItem('User_Name') || '' 
   let fullName = sessionStorage.getItem('Full_Name') || ''
   let RoleID = sessionStorage.getItem('role_id') || ''
   let departmentcode = sessionStorage.getItem('departmentcode') || ''
@@ -2085,6 +2109,135 @@
     `
   }
 
+  if (btn.$process && verify.workFlow === 'true' && window.GLOB.UserCacheMap.has(btn.$flowId)) {
+    let flow = window.GLOB.UserCacheMap.get(btn.$flowId)
+    let node = null
+    let line = null
+    let target = null
+    let status = 0
+    let statusName = ''
+    let detailId = ''
+
+    if (verify.flowType === 'start') {
+      target = flow.cells.filter(cell => cell.mknode === 'start')[0]
+
+      if (target) {
+        detailId = target.id
+        status = target.mkdata.status
+        statusName = target.mkdata.statusName
+      }
+    } else if (_data.works_flow_param) {
+      node = JSON.parse(window.decodeURIComponent(window.atob(_data.works_flow_param)))
+
+      if (node) {
+        let lines = flow.cells.filter(cell => cell.shape === 'edge' && cell.source.cell === node.id)
+        if (verify.flowType === 'reject') {
+          line = lines.filter(cell => cell.mkdata.flowType === 'reject')[0]
+        } else {
+          line = lines.filter(cell => cell.mkdata.flowType !== 'reject')[0]
+        }
+      }
+      
+      if (line) {
+        detailId = line.id
+        status = line.mkdata.status
+        statusName = line.mkdata.statusName
+        target = flow.cells.filter(cell => cell.id === line.target.cell)[0]
+      }
+    }
+
+    if (verify.flowSql === 'true' && target) {
+      if (verify.flowType === 'start') {
+        _sql += `
+      /* 宸ヤ綔娴侀粯璁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 @ID@,@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@
+      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,upid)
+      select @ID@,@works_flow_code@,@works_flow_name@ ,@works_flow_param@,@status@,@statusname@,@works_flow_detail_id@,@work_group@,@work_grade@,@time_id@
+      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 @ID@,@works_flow_code@,@works_flow_detail_id@,@userid@,@start_type@,@userid@,@UserName,@FullName,@time_id@
+      `
+      } else {
+        _sql += `
+      /* 宸ヤ綔娴侀粯璁ql */
+      update s_my_works_flow set status=@status@,statusname=@statusname@,modifydate=getdate(),modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname
+      where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0
+      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,upid)
+      select @ID@,@works_flow_code@,@works_flow_name@ ,@works_flow_param@,@status@,@statusname@,@works_flow_detail_id@,@work_group@,@work_grade@,@time_id@
+      if @check_userids@ != ''
+      begin
+            delete s_my_works_flow_role where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0
+            insert into s_my_works_flow_role (works_flow_id,works_flow_code,userid,works_flow_detail_id,createuserid,CreateUser,CreateStaff,upid)
+            select @ID@,@works_flow_code@,ID,@works_flow_detail_id@,@userid@,@UserName,@FullName,@time_id@ from dbo.SplitComma(@check_userids@)
+            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 @ID@,@works_flow_code@,@works_flow_detail_id@,ID,@check_type@,@userid@,@UserName,@FullName,@time_id@ from dbo.SplitComma(@check_userids@)
+      end
+      if @notice_userids@ != ''
+      begin
+            delete n
+            from (select * from s_my_works_flow_notice where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0) n
+            inner join (select ID from dbo.SplitComma(@notice_userids@)) s
+            on n.userid = s.id
+            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 @ID@,@works_flow_code@,@works_flow_detail_id@,ID,@notice_type@,@userid@,@UserName,@FullName,@time_id@ from dbo.SplitComma(@notice_userids@)
+      end
+      `
+      }
+    } else if (verify.flowSql === 'true') {
+      target = flow.cells.filter(cell => cell.mknode === 'start')[0]
+
+      if (target) {
+        detailId = target.id
+      }
+
+      status = 0
+      statusName = '寮傚父'
+      _sql += `
+      /* 宸ヤ綔娴佸紓甯竤ql */
+      update s_my_works_flow set status=@status@,statusname=@statusname@,modifydate=getdate(),modifyuserid=@userid@,modifyuser=@username,modifystaff=@fullname
+      where works_flow_id=@ID@ and works_flow_code=@works_flow_code@ and deleted=0
+      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,upid)
+      select @ID@,@works_flow_code@,@works_flow_name@ ,@works_flow_param@,@status@,@statusname@,@works_flow_detail_id@,@work_group@,@work_grade@,@time_id@
+      `
+    }
+
+    if (verify.flowType !== 'start') {
+      if (line) {
+        let checkIds = []
+        let noticeIds = []
+        line.mkdata.members && line.mkdata.members.forEach(item => {
+          checkIds.push(item.worker_id)
+        })
+        line.mkdata.copys && line.mkdata.copys.forEach(item => {
+          noticeIds.push(item.worker_id)
+        })
+        _sql = _sql.replace(/@check_userids@/ig, `'${checkIds.join(',')}'`)
+        _sql = _sql.replace(/@notice_userids@/ig, `'${noticeIds.join(',')}'`)
+      } else {
+        _sql = _sql.replace(/@check_userids@/ig, `''`)
+        _sql = _sql.replace(/@notice_userids@/ig, `''`)
+      }
+    }
+
+    _sql = _sql.replace(/@start_type@/ig, `'寮�濮�'`)
+    _sql = _sql.replace(/@check_type@/ig, verify.flowType === 'reject' ? `'椹冲洖'` : `'瀹℃牳'`)
+    _sql = _sql.replace(/@notice_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 msg = {...target.mkdata, id: target.id}
+      _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, `'${sessionStorage.getItem('work_grade') || 0}'`)
+  }
+
   if (_backCustomScript) {
     _sql += _backCustomScript
   }
@@ -2124,31 +2277,17 @@
   _sql = _sql.replace(/@typename@/ig, `'admin'`)
 
   if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-    _sql = _sql.replace(/@datam@/ig, '\'Y\'')
+    _sql = _sql.replace(/\$@/ig, '/*').replace(/@\$/ig, '*/').replace(/@datam@/ig, `'Y'`)
   } else {
-    _sql = _sql.replace(/@datam@/ig, '\'\'')
+    _sql = _sql.replace(/@\$|\$@/ig, '').replace(/@datam@/ig, `''`)
   }
 
   if (window.GLOB.debugger === true) {
-    // _sql = _sql.replace(/\n\s{8}/ig, '\n')
+    console.info('%c' + btn.logLabel, 'color: blue')
     console.info(_sql)
   }
 
   if (retmsg) {
-    _callbacksql = _callbacksql.replace(/@ID@/ig, `'${primaryId || ''}'`)
-    _callbacksql = _callbacksql.replace(/@BID@/ig, `'${BID}'`)
-    _callbacksql = _callbacksql.replace(/@LoginUID@/ig, `'${sessionStorage.getItem('LoginUID') || ''}'`)
-    _callbacksql = _callbacksql.replace(/@SessionUid@/ig, `'${localStorage.getItem('SessionUid') || ''}'`)
-    _callbacksql = _callbacksql.replace(/@UserID@/ig, `'${sessionStorage.getItem('UserID') || ''}'`)
-    _callbacksql = _callbacksql.replace(/@Appkey@/ig, `'${window.GLOB.appkey || ''}'`)
-    _callbacksql = _callbacksql.replace(/@typename@/ig, `'admin'`)
-
-    if (sessionStorage.getItem('dataM') === 'true') { // 鏁版嵁鏉冮檺
-      _callbacksql = _callbacksql.replace(/@datam@/ig, '\'Y\'')
-    } else {
-      _callbacksql = _callbacksql.replace(/@datam@/ig, '\'\'')
-    }
-    
     return {
       sql: _sql,
       callbacksql: _callbacksql

--
Gitblit v1.8.0