king
2024-07-16 53ae6ce03a438526ce8f5b5675e53245fafa3ec7
2024-07-16
1个文件已修改
90 ■■■■ 已修改文件
src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx 90 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/templates/sharecomponent/actioncomponent/verifyexcelin/customscript/index.jsx
@@ -22,8 +22,7 @@
    editItem: null,
    usefulfields: null,
    loading: false,
    skip: false,
    verifySql: ''
    skip: false
  }
  UNSAFE_componentWillMount () {
@@ -37,26 +36,12 @@
  }
  resetfield = (columns) => {
    const { btn } = this.props
    columns = columns.filter(item => item.import !== 'false')
    let fields = columns.map(item => item.Column)
    fields.push('jskey')
    let _dec = columns.map(item => item.Column + ' ' + item.type).join(',')
    let sheet = btn.sheet.replace(/(.*)\.(.*)\.|@db@/ig, '')
    if (_dec) {
      _dec += ','
    }
    let _sql = `create table #${sheet} (${_dec}jskey nvarchar(50),BID nvarchar(50) )
      Declare @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),@ErrorCode nvarchar(50), @retmsg nvarchar(4000),@tbid Nvarchar(512)
      Select @ErrorCode='', @retmsg=''
    `
    this.setState({
      verifySql: _sql,
      usefulfields: fields.join(', ')
    })
  }
@@ -81,7 +66,7 @@
  }
  handleConfirm = () => {
    const { type, btn, workFlow } = this.props
    const { type, btn, workFlow, usefulfields } = this.props
    const { editItem, skip } = this.state
    // 表单提交时检查输入值是否正确
@@ -115,12 +100,6 @@
        let pass = checkSQL(values.sql, 'customscript')
        if (!pass) return
        let sheet = btn.sheet.replace(/(.*)\.(.*)\.|@db@/ig, '')
        let tail = `
          drop table #${sheet}
          aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg
        `
        let _initCustomScript = '' // 初始化脚本
        let _prevCustomScript = '' // 默认sql前执行脚本
@@ -166,7 +145,70 @@
          }
        }
        let sql = this.state.verifySql + _initCustomScript + _prevCustomScript + _backCustomScript + tail
        let sheet = btn.sheet.replace(/(.*)\.(.*)\.|@db@/ig, '')
        let fields = []
        let _dec = []
        let vals = []
        usefulfields.forEach(col => {
          if (col.import === 'false') return
          fields.push(col.Column)
          _dec.push(col.Column + ' ' + col.type)
          let val = ''
          if (col.import === 'init') {
            if (/^Nvarchar/ig.test(col.type)) {
              val = ''
            } else if (/^Decimal/ig.test(col.type) || /^int/ig.test(col.type)) {
              val = 0
            } else if (col.type === 'date') {
              val = '1949-10-01'
            } else if (col.type === 'datetime') {
              val = '1949-10-01 00:00:00'
            }
          } else if (/^Nvarchar/ig.test(col.type)) {
            val = 'mk'
          } else if (/^Decimal/ig.test(col.type) || /^int/ig.test(col.type)) {
            val = 1
          } else if (col.type === 'date') {
            val = '1949-10-01'
          } else if (col.type === 'datetime') {
            val = '1949-10-01 00:00:00'
          }
          vals.push(`'${val}'`)
        })
        vals.push(`'${new Date().getTime()}000010'`)
        vals.push(`'bid'`)
        vals =  `Select ${vals.join(',')}`
        fields.push('jskey')
        fields = fields.join(',')
        _dec = _dec.join(',')
        _dec = _dec ? _dec + ',' : ''
        let sql = `create table #${sheet} (${_dec}jskey nvarchar(50),BID nvarchar(50) )
          Declare @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),@ErrorCode nvarchar(50), @retmsg nvarchar(4000),@tbid Nvarchar(512)
          Select @ErrorCode='', @retmsg='', @UserName='', @FullName='', @RoleID='', @mk_departmentcode='', @mk_organization='', @mk_user_type='', @mk_nation='', @mk_province='', @mk_city='', @mk_district='', @mk_address=''
          ${_initCustomScript}
          Insert into #${sheet} (${fields},BID)
          /* excel数据*/
          ${vals}
          ${_prevCustomScript}
          ${_backCustomScript}
          drop table #${sheet}
          aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg
        `
        sql = sql.replace(/@\$|\$@/ig, '').replace(/\$check@|@check\$/ig, '').replace(/@datam@/ig, `''`).replace(/@typename@/ig, `'debug'`)
        
        if (workFlow === 'true') {