king
2024-11-15 c5a07dba94694d13f0a78e051dfa26c3522933ee
src/templates/zshare/verifycard/index.jsx
@@ -44,7 +44,8 @@
    emailCodes: [],         // 邮箱模板
    verify: {},
    fields: [],
    usefulfields: '',
    formfields: '',
    colfields: '',
    defaultsql: '',         // 默认Sql
    orderModular: [],
    orderModularDetail: [],
@@ -85,7 +86,7 @@
        title: '验证类型',
        dataIndex: 'verifyType',
        width: '14%',
        render: (text, record) => record.verifyType === 'logic' ? '逻辑验证' : '物理验证',
        render: (text) => text === 'logic' ? '逻辑验证' : '物理验证',
        inputType: 'select',
        editable: true,
        options: [
@@ -123,7 +124,7 @@
          record.field.split(',').forEach((_field, index) => {
            let _key = _field.toLowerCase()
            _fieldValue.push(`${_key}=${_key === 'bid' ? '@BID@' : ''}`)
            _fieldValue.push(`${_key}=${_key === 'bid' ? '@BID@' : `''`}`)
            _value.push(`${_labels[index] || ''}:xxx`)
          })
@@ -640,20 +641,19 @@
    _verify.uniques = _verify.uniques || []
    _verify.contrasts = _verify.contrasts || []
    _verify.accountdate = _verify.accountdate || 'false'
    _verify.accountfield = _verify.accountfield || ''
    _verify.voucherdate = _verify.voucherdate || ''
    _verify.customverifys = _verify.customverifys || []
    _verify.billcodes = _verify.billcodes || []
    _verify.voucher = _verify.voucher || {enabled: false}
    _verify.scripts = _verify.scripts || []
    _verify.cbScripts = _verify.cbScripts || []
    if (window.GLOB.process) {
    if (window.GLOB.process && card.intertype !== 'inner') {
      _verify.workFlow = _verify.workFlow || 'false'
      _verify.flowType = _verify.flowType || (card.sqlType === 'insert' ? 'start' : 'approval')
      _verify.flowSql = _verify.flowSql || 'true'
    } else {
      delete _verify.workFlow
      delete _verify.flowRemark
      delete _verify.flowType
      delete _verify.flowSql
    }
@@ -663,20 +663,20 @@
      _verify.printTempId = ''
    }
    if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
      window.GLOB.funcs.forEach(m => {
        let reg = new RegExp(`\\/\\*\\$ex@${m.func_code}-begin\\*\\/[\\s\\S]+\\/\\*@ex\\$-end\\*\\/`, 'ig')
        _verify.customverifys.forEach(item => {
          item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`)
        })
        _verify.scripts.forEach(item => {
          item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`)
        })
        _verify.cbScripts.forEach(item => {
          item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`)
        })
      })
    }
    // if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
    //   window.GLOB.funcs.forEach(m => {
    //     let reg = new RegExp(`\\/\\*\\$ex@${m.func_code}-begin\\*\\/[\\s\\S]+\\/\\*@ex\\$-end\\*\\/`, 'ig')
    //     _verify.customverifys.forEach(item => {
    //       item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`)
    //     })
    //     _verify.scripts.forEach(item => {
    //       item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`)
    //     })
    //     _verify.cbScripts.forEach(item => {
    //       item.sql = item.sql.replace(reg, `$ex@${m.func_code}@ex$`)
    //     })
    //   })
    // }
    _verify.customverifys.forEach((item, i) => {
      item.$index = i + 1
@@ -695,11 +695,19 @@
      activeKey = 'cbScripts'
    }
    let oriVerify = fromJS(_verify).toJS()
    if (_verify.wxAppId) {
      if (!window.GLOB.WXApps || window.GLOB.WXApps.filter(app => app.appType === 'public').length === 0) {
        delete _verify.wxAppId
      }
    }
    this.setState({
      activeKey: activeKey,
      verifyInter: verifyInter,
      verify: _verify,
      oriVerify: fromJS(_verify).toJS()
      oriVerify: oriVerify
    })
    if (card.intertype === 'inner') return
@@ -715,15 +723,12 @@
      _fields = card.modal.fields || []
    }
    let _usefulfields = ['UserName', 'FullName', 'RoleID', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'ModularDetailCode', 'tbid', 'mk_deleted']
    let _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)', '@BillCode nvarchar(50)', '@BVoucher nvarchar(50)', '@FIBVoucherDate nvarchar(50)', '@FiYear nvarchar(50)', '@ModularDetailCode nvarchar(50)', '@bid nvarchar(50)', '@tbid nvarchar(50)', '@mk_deleted int']
    let _select = ['@UserName=\'\'', '@FullName=\'\'', '@RoleID=\'\'', '@mk_departmentcode=\'\'', '@mk_organization=\'\'', '@mk_user_type=\'\'', '@mk_nation=\'\'', '@mk_province=\'\'', '@mk_city=\'\'', '@mk_district=\'\'', '@mk_address=\'\'', '@ErrorCode=\'\'', '@retmsg=\'\'', '@BillCode=\'\'', '@BVoucher=\'\'', '@FIBVoucherDate=\'\'', '@FiYear=\'\'', '@ModularDetailCode=\'\'', '@bid=\'\'', '@mk_deleted=1']
    let fieldArr = _usefulfields.map(_f => _f.toLowerCase())
    let hasBid = false
    _usefulfields = []
    let sysfields = ['UserName', 'FullName', 'RoleID', 'mk_departmentcode', 'mk_organization', 'mk_user_type', 'mk_nation', 'mk_province', 'mk_city', 'mk_district', 'mk_address', 'BillCode', 'BVoucher', 'FIBVoucherDate', 'FiYear', 'ModularDetailCode', 'tbid', 'mk_deleted', 'bid', 'mk_submit_type']
    let _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)', '@BillCode nvarchar(50)', '@BVoucher nvarchar(50)', '@FIBVoucherDate nvarchar(50)', '@FiYear nvarchar(50)', '@ModularDetailCode nvarchar(50)', '@bid nvarchar(50)', '@tbid nvarchar(50)', '@mk_deleted int', '@mk_submit_type nvarchar(50)']
    let _select = ['@UserName=\'\'', '@FullName=\'\'', '@RoleID=\'\'', '@mk_departmentcode=\'\'', '@mk_organization=\'\'', '@mk_user_type=\'\'', '@mk_nation=\'\'', '@mk_province=\'\'', '@mk_city=\'\'', '@mk_district=\'\'', '@mk_address=\'\'', '@ErrorCode=\'\'', '@retmsg=\'\'', '@BillCode=\'\'', '@BVoucher=\'\'', '@FIBVoucherDate=\'\'', '@FiYear=\'\'', '@ModularDetailCode=\'\'', '@bid=\'\'', '@mk_deleted=1', '@mk_submit_type=\'\'']
    
    fieldArr.push('bid')
    let fieldArr = sysfields.map(_f => _f.toLowerCase())
    let hasBid = false
    let verIndex = _fields.findIndex(item => item.type === 'vercode')
    if (verIndex > -1) {
@@ -746,17 +751,19 @@
      })
    }
    let formfields = []
    _fields = _fields.filter(_f => _f.field)
    _fields.forEach(_f => {
      if (_f.field.toLowerCase() === 'bid') {
      let key = _f.field.toLowerCase()
      if (key === 'bid') {
        hasBid = true
      }
      if (fieldArr.includes(_f.field.toLowerCase())) return
      if (fieldArr.includes(key)) return
      fieldArr.push(_f.field.toLowerCase())
      fieldArr.push(key)
      _usefulfields.push(_f.field)
      formfields.push(_f.field)
      let _fieldlen = _f.fieldlength || 50
@@ -775,16 +782,18 @@
        _select.push(`@${_f.field}='1949-10-01'`)
      } else if (_f.type === 'number') {
        _type = `decimal(18,${_fieldlen})`
        _select.push(`@${_f.field}=0`)
        _select.push(`@${_f.field}=1`)
      } else if (_f.declare === 'decimal') {
        _type = `decimal(18,${_f.decimal || 0})`
        _select.push(`@${_f.field}=0`)
        _select.push(`@${_f.field}=1`)
      } else if (_f.type === 'rate') {
        _type = `decimal(18,2)`
        _select.push(`@${_f.field}=0`)
        _select.push(`@${_f.field}=1`)
      } else {
        _select.push(`@${_f.field}=''`)
      }
      if (['appkey'].includes(key)) return
      _declare.push(`@${_f.field} ${_type}`)
    })
@@ -799,6 +808,7 @@
    let unionFields = fromJS(_fields).toJS()
    let formArr = _fields.map(_f => _f.field.toLowerCase())
    let colfields = []
    if (card.Ot !== 'notRequired' && columns) {
      columns.forEach(_f => {
        if (!_f.field) return
@@ -813,40 +823,45 @@
        if (fieldArr.includes(key)) return
        fieldArr.push(key)
        _usefulfields.push(_f.field)
        colfields.push(_f.field)
        if (_f.datatype) { // 自定义字段
          if (/decimal/ig.test(_f.datatype)) {
            _select.push(`@${_f.field}=0`)
          if (/decimal|int/ig.test(_f.datatype)) {
            _select.push(`@${_f.field}=1`)
          } else if (/date/ig.test(_f.datatype)) {
            _select.push(`@${_f.field}='1949-10-01'`)
          } else {
            _select.push(`@${_f.field}=''`)
          }
          if (['appkey'].includes(key)) return
          _declare.push(`@${_f.field} ${_f.datatype}`)
          return
        }
        let _fieldlen = _f.fieldlength || 50
        if (_fieldlen > 4000) {
          _fieldlen = 'max'
        }
        let _type = `nvarchar(${_fieldlen})`
        if (_f.type === 'number') {
          _type = `decimal(18,${_f.decimal ? _f.decimal : 0})`
        } else if (_f.type === 'picture' || _f.type === 'textarea') {
          _type = `nvarchar(${_fieldlen})`
        }
        if (_f.type === 'number') {
          _select.push(`@${_f.field}=0`)
        } else {
          _select.push(`@${_f.field}=''`)
        }
          let _fieldlen = _f.fieldlength || 50
          if (_fieldlen > 4000) {
            _fieldlen = 'max'
          }
          let _type = `nvarchar(${_fieldlen})`
          if (_f.type === 'number') {
            _type = `decimal(18,${_f.decimal ? _f.decimal : 0})`
          } else if (_f.type === 'picture' || _f.type === 'textarea') {
            _type = `nvarchar(${_fieldlen})`
          }
          if (_f.type === 'number') {
            _select.push(`@${_f.field}=1`)
          } else {
            _select.push(`@${_f.field}=''`)
          }
          if (['appkey'].includes(key)) return
        _declare.push(`@${_f.field} ${_type}`)
          _declare.push(`@${_f.field} ${_type}`)
        }
      })
    }
@@ -1033,7 +1048,8 @@
      columnsFields: _columns,
      initsql: _sql,
      defaultsql: _defaultsql,
      usefulfields: _usefulfields.join(', '),
      formfields: formfields.join(', '),
      colfields: colfields.join(', '),
      uniqueColumns: this.state.uniqueColumns.map(col => {
        if (col.dataIndex === 'field') {
          col.options = uniqueFields
@@ -1157,7 +1173,6 @@
  }
  orderSql = (record) => {
    let _ModularDetailCode = ''
    let _lpline = ''
    if (record.TypeCharOne === 'Lp') {
      if (record.linkField.toLowerCase() === 'bid') {
@@ -1165,17 +1180,20 @@
      } else {
        _lpline = `set @ModularDetailCode= 'Lp'+ right('${record.mark || this.props.card.uuid}'+@${record.linkField.toLowerCase()},48)`
      }
      _ModularDetailCode = '@ModularDetailCode'
    } else if (record.TypeCharOne === 'BN') {
      _ModularDetailCode = `'${record.TypeCharOne}'`
      if (record.linkField.toLowerCase() === 'bid') {
        _lpline = `set @ModularDetailCode= 'BN'+ right(@BID@,48)`
      } else {
        _lpline = `set @ModularDetailCode= 'BN'+ right(@${record.linkField.toLowerCase()},48)`
      }
    } else {
      _ModularDetailCode = `'${record.ModularDetailCode}'`
      _lpline = `set @ModularDetailCode= right('${record.ModularDetailCode}',50)`
    }
    let sql = `select @BillCode='', @${record.field}='', @ModularDetailCode=''
    ${_lpline}
    exec s_get_BillCode
      @ModularDetailCode=${_ModularDetailCode},
      @ModularDetailCode=@ModularDetailCode,
      @Type=${record.Type},
      @TypeCharOne='${record.TypeCharOne}',
      @TypeCharTwo ='${record.TypeCharTwo}',
@@ -1561,7 +1579,7 @@
    
    // 表单提交时检查输入值是否正确
    return new Promise((resolve, reject) => {
      if ((card.sqlType === 'custom' || verify.default === 'false') && verify.scripts.length === 0) {
      if ((card.sqlType === 'custom' || verify.default === 'false') && !(verify.workFlow === 'true' && verify.flowSql === 'true') && verify.scripts.length === 0) {
        notification.warning({
          top: 92,
          message: '不执行默认sql时,必须设置自定义脚本!',
@@ -1583,20 +1601,20 @@
        msg = '自定义脚本'
      }
      if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
        window.GLOB.funcs.forEach(m => {
          let reg = new RegExp('\\$ex@' + m.func_code + '@ex\\$', 'ig')
          verify.customverifys.forEach(item => {
            item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`)
          })
          verify.scripts.forEach(item => {
            item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`)
          })
          verify.cbScripts.forEach(item => {
            item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`)
          })
        })
      }
      // if (window.GLOB.funcs && window.GLOB.funcs.length > 0) {
      //   window.GLOB.funcs.forEach(m => {
      //     let reg = new RegExp('\\$ex@' + m.func_code + '@ex\\$', 'ig')
      //     verify.customverifys.forEach(item => {
      //       item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`)
      //     })
      //     verify.scripts.forEach(item => {
      //       item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`)
      //     })
      //     verify.cbScripts.forEach(item => {
      //       item.sql = item.sql.replace(reg, `/*$ex@${m.func_code}-begin*/\n${m.key_sql}\n/*@ex$-end*/`)
      //     })
      //   })
      // }
      delete verify.limitInvalid
      delete verify.limitText
@@ -1664,7 +1682,7 @@
  render() {
    const { card, columns } = this.props
    const { activeKey, verifyInter, verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, emailCodes, appType } = this.state
    const { activeKey, verifyInter, verify, fields, uniqueFields, uniqueColumns, unionFields, onceUniqueColumns, columnsFields, contrastColumns, customColumns, orderColumns, scriptsColumns, cbScriptsColumns, orderModular, orderModularDetail, voucher, voucherDetail, notes, emailCodes, appType, formfields, colfields } = this.state
    const formItemLayout = {
      labelCol: {
        xs: { span: 24 },
@@ -1686,7 +1704,7 @@
              {verify.default === 'false' ? <span className="count-tip"><ExclamationOutlined style={{color: 'orange'}}/></span> : null}
            </span>
          } key="base">
            <BaseForm card={card} appType={appType} columns={columns} unionFields={unionFields} verify={verify} notes={notes} emailCodes={emailCodes} onChange={(verify) => this.setState({verify})} wrappedComponentRef={(inst) => this.baseForm = inst}/>
            <BaseForm card={card} appType={appType} fields={fields} columns={columns} unionFields={unionFields} verify={verify} notes={notes} emailCodes={emailCodes} onChange={(verify) => this.setState({verify})} wrappedComponentRef={(inst) => this.baseForm = inst}/>
          </TabPane> : null}
          {verifyInter === 'system' ? <TabPane tab={
            <span>
@@ -1706,7 +1724,8 @@
            <CustomForm
              btn={this.props.card}
              initsql={this.state.initsql}
              usefulfields={this.state.usefulfields}
              formfields={formfields}
              colfields={colfields}
              customChange={this.customChange}
              wrappedComponentRef={(inst) => this.customForm = inst}
            />
@@ -1775,10 +1794,15 @@
                type="fullscreen"
                btn={this.props.card}
                initsql={this.state.initsql}
                workFlow={verify.workFlow}
                flowRemark={verify.flowRemark}
                flowType={verify.flowType}
                flowSql={verify.flowSql}
                customScripts={verify.scripts}
                useDefaultSql={verify.default !== 'false'}
                defaultsql={this.state.defaultsql}
                usefulfields={this.state.usefulfields}
                formfields={formfields}
                colfields={colfields}
                systemScripts={this.state.systemScripts}
                scriptsChange={this.scriptsChange}
                wrappedComponentRef={(inst) => this.scriptsFullForm = inst}
@@ -1788,11 +1812,14 @@
              btn={this.props.card}
              initsql={this.state.initsql}
              workFlow={verify.workFlow}
              flowRemark={verify.flowRemark}
              flowType={verify.flowType}
              flowSql={verify.flowSql}
              customScripts={verify.scripts}
              useDefaultSql={verify.default !== 'false'}
              defaultsql={this.state.defaultsql}
              usefulfields={this.state.usefulfields}
              formfields={formfields}
              colfields={colfields}
              systemScripts={this.state.systemScripts}
              scriptsChange={this.scriptsChange}
              wrappedComponentRef={(inst) => this.scriptsForm = inst}
@@ -1817,7 +1844,8 @@
                btn={this.props.card}
                initsql={this.state.initsql}
                customScripts={verify.cbScripts}
                usefulfields={this.state.usefulfields}
                formfields={formfields}
                colfields={colfields}
                systemScripts={this.state.systemScripts}
                scriptsChange={this.cbScriptsChange}
                wrappedComponentRef={(inst) => this.cbscriptsFullForm = inst}
@@ -1827,7 +1855,8 @@
              btn={this.props.card}
              initsql={this.state.initsql}
              customScripts={verify.cbScripts}
              usefulfields={this.state.usefulfields}
              formfields={formfields}
              colfields={colfields}
              systemScripts={this.state.systemScripts}
              scriptsChange={this.cbScriptsChange}
              wrappedComponentRef={(inst) => this.cbscriptsForm = inst}