From 4cc738e535d1a20701d206e12cf9de8cc5a01170 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期六, 01 六月 2024 15:24:12 +0800 Subject: [PATCH] Merge branch 'develop' --- src/utils/utils.js | 159 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 149 insertions(+), 10 deletions(-) diff --git a/src/utils/utils.js b/src/utils/utils.js index be865dc..1fa8b28 100644 --- a/src/utils/utils.js +++ b/src/utils/utils.js @@ -1048,12 +1048,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 + '鏃堕棿鏍煎紡閿欒') } } @@ -1128,9 +1134,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) } }) @@ -1139,13 +1151,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 ')} ` : '' @@ -1153,6 +1169,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 += ` /* 閲嶅鎬ч獙璇� */ @@ -1226,12 +1256,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') @@ -1362,17 +1464,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 += ` /* 閲嶅鎬ч獙璇� */ @@ -1386,7 +1525,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 @@ -1867,7 +2006,7 @@ if (_key === 'bid' && !_val) { // 琛ㄥ崟涓病鏈塨id鍒欎娇鐢ㄧ郴缁焍id鍙橀噺 _val = BID } - + _fieldValue.push(`${_key}='${_val}'`) _value.push(`${_labels[index] || ''}锛�${_val || ''}`) }) -- Gitblit v1.8.0