king
2020-02-16 5088d267c69e87673c85ba302dd9dc62c9da4951
src/utils/utils.js
@@ -517,9 +517,10 @@
        return `'${val}' as ${col.Column}`
      })
      if (!item.innerFunc) {
        vals.push(`@upid+'${this.getuuid()}' as jskey`)
      }
      let _lineIndex = '0000' + (lindex + 1) + '0'
      _lineIndex = _lineIndex.substring(_lineIndex.length - 6)
      vals.push(`@upid+'${_lineIndex}' as jskey`)
      return `Select ${vals.join(',')}`
    })
@@ -528,10 +529,9 @@
    let _sql = ''
    if (!item.innerFunc) {
    if (item.intertype === 'inner' && !item.innerFunc) {
      let declarefields = []
      let fields = []
      let timestamp = new Date().getTime()
      btn.columns.forEach(col => {
        declarefields.push(`${col.Column} ${col.type}`)
@@ -541,10 +541,13 @@
      fields = fields.join(',')
      _sql = `declare @${btn.sheet} table (${declarefields.join(',')},jskey nvarchar(50) )
      Declare @UserName nvarchar(50),@FullName nvarchar(50) ,@upid nvarchar(50)
      Declare @UserName nvarchar(50),@FullName nvarchar(50) ,@upid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000)
      Select  @ErrorCode='', @retmsg=''
      select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID@
      
      set @upid='${timestamp}'
      set @upid='${this.getuuid()}'
     
      Insert into  @${btn.sheet} (${fields},jskey)
      ${_Ltext}
@@ -552,7 +555,9 @@
      Insert into ${btn.sheet} (${fields},createuserid,createuser,createstaff,bid,upid) 
      Select ${fields},@userid@,@username,@fullname,@BID@,@upid From @${btn.sheet}
      Delete @${btn.sheet}`
      Delete @${btn.sheet}
      aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
    } else {
      _sql = _Ltext
@@ -866,8 +871,14 @@
    let primaryKeyName = ['id', 'bid', 'loginuid', 'sessionuid', 'userid', 'appkey'].includes(primaryKey.toLowerCase()) ? primaryKey + '@' : primaryKey
    let _actionType = null
    if (verify.default !== 'false') { // 判断是否使用默认sql
      _actionType = btn.sqlType
    }
    // 添加、修改、逻辑删除、物理删除
    if (btn.OpenType === 'pop' && btn.sqlType === 'insert' && verify.default !== 'false') {
    if (_actionType === 'insert') {
      let keys = []
      let values = []
@@ -909,7 +920,7 @@
      values = values.join(',')
      _sql += _user
      _sql += `insert into ${btn.sql} (${keys}) select ${values};`
    } else if (btn.OpenType === 'pop' && btn.sqlType === 'update' && verify.default !== 'false') {
    } else if (_actionType === 'update') {
      let _form = []
      let _arr = []
@@ -945,9 +956,10 @@
      _form = _form.join(',')
      _sql += `update ${btn.sql} set ${_form} where ${primaryKey}=@${primaryKeyName};`
    } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'LogicDelete' && verify.default !== 'false') { // 逻辑删除
    } else if (_actionType === 'LogicDelete') { // 逻辑删除
      _sql += `update ${btn.sql} set deleted=1,modifydate=getdate(),modifyuserid=@userid@ where ${primaryKey}=@${primaryKeyName};`
    } else if ((btn.OpenType === 'prompt' || btn.OpenType === 'exec') && btn.sqlType === 'delete' && verify.default !== 'false') {      // 物理删除
    } else if (_actionType === 'delete') {      // 物理删除
      let _msg = ''
      if (data && logcolumns && logcolumns.length > 0) {
        let _index = 0
@@ -1258,4 +1270,104 @@
    return Ltext
  }
  /**
   * @description 创建导入存储过程
   * @return {String}
   */
  static getexcelInfunc (param, btn, menu) {
    let _verify = btn.verify
    let declarefields = []
    let fields = []
    _verify.columns.forEach(col => {
      declarefields.push(`${col.Column} ${col.type}`)
      fields.push(col.Column)
    })
    fields = fields.join(',')
    let _sql = `declare @${_verify.sheet} table (${declarefields.join(',')},jskey nvarchar(50) )
      Declare @UserName nvarchar(50),@FullName nvarchar(50),@upid nvarchar(50),@ErrorCode nvarchar(50),@retmsg nvarchar(4000)
      Select @ErrorCode='',@retmsg=''
      select @UserName=UserName,@FullName=FullName from SUsers where UID=@UserID@
      set @upid='时间戳'
      Insert into @${_verify.sheet} (${fields},jskey)
      exec s_KeyWords_Replace
      @LText=@LText, @BID=@BID,@LoginUID=@LoginUID,@SessionUid=@SessionUid,@UserID=@UserID,@ID=@ID
      Insert into ${_verify.sheet} (${fields},createuserid,createuser,createstaff,bid,upid)
      Select ${fields},@userid@,@username,@fullname,@BID@,@upid From @${_verify.sheet}
      Delete @${_verify.sheet}
      aaa: select @ErrorCode as ErrorCode,@retmsg as retmsg`
    let Ltext = `create proc ${param.funcName}
    ( /*${menu.MenuName}  ${btn.label}*/
      @ID nvarchar(50)='',
      @BID  nvarchar(50)='',
      @Ltext nvarchar(max)='',
      @sEPTMenuNo nvarchar(50)='${param.menuNo}',
      @lang nvarchar(50)='',
      @LoginUID nvarchar(50)='',
      @SessionUid nvarchar(50)='',
      @UserID nvarchar(50),
      @ErrorCode  nvarchar(50) out,
      @retmsg nvarchar(4000) out
    )
    as
    begin
    declare @sEPTMenuNo ,@Begindate datetime,@Enddate datetime
    select @sEPTMenuNo=@retmsg,@Begindate=getdate()
    set @ErrorCode=''
    set @retmsg=''
    BEGIN TRY
      /*事务操作*/
      BEGIN TRAN
        /*具体业务操作*/
        /*
        ${_sql}
        */
      COMMIT TRAN
      SET NOCOUNT ON
      RETURN
    END TRY
    BEGIN CATCH
      /*错误处理*/
      ROLLBACK TRAN
      DECLARE @ErrorMessage NVARCHAR(4000);
      DECLARE @ErrorSeverity INT;
      DECLARE @ErrorState INT;
      /*把自定义的友好的错误信息提示加上*/
      set @ErrorCode=cast(ERROR_NUMBER() as nvarchar(50))
      SET @retmsg=ERROR_MESSAGE();
      SELECT @ErrorMessage=ERROR_MESSAGE(),
        @ErrorSeverity=ERROR_SEVERITY(),
        @ErrorState=ERROR_STATE();
      RAISERROR(@ErrorMessage, /*-- Message text.*/
        @ErrorSeverity, /*-- Severity.*/
        @ErrorState  /*-- State.*/
      );
    END CATCH
    GOTO_RETURN:
      ROLLBACK TRAN
    END`
    Ltext = Ltext.replace(/\n\s{4}/ig, 'mchr13k')
    return Ltext
  }
}