From c8804ceb1fe2dea76f9949c5ea04423876ee2c81 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期五, 28 六月 2024 14:02:47 +0800 Subject: [PATCH] 2024-06-28 --- src/utils/utils.js | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 160 insertions(+), 9 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index 02050a4..2b7f1d6 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 ? '*/' : ''}, @@ -1134,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) } }) @@ -1145,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 ')} ` : '' @@ -1159,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 += ` /* 閲嶅鎬ч獙璇� */ @@ -1232,12 +1258,84 @@ ${_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') @@ -1329,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 ? '*/' : ''}, @@ -1368,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 += ` /* 閲嶅鎬ч獙璇� */ @@ -1392,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 @@ -1873,7 +2009,7 @@ if (_key === 'bid' && !_val) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 _val = BID } - + _fieldValue.push(`${_key}='${_val}'`) _value.push(`${_labels[index] || ''}锛�${_val || ''}`) }) @@ -2430,15 +2566,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 : ''} @@ -2537,6 +2687,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) { -- Gitblit v1.8.0