批量验证

f\RG3.BO.DB\Services\DbExecuteService$BatSave.cs

后台通知进度 bsWsLogProcessId

\rg3-frontend\rg3-cli-oapp\src\components\basis\bs-ws-log-content\index.vue

\rg3-frontend\rg3-cli-oapp\src\components\basis\bs-op-float

\RG3.PF.Web.StartUsed\Providers\PushPullWsLogEventBusProvider.cs


<a class="cursor-p" v-show="processValue>0">
      <!-- @click.prevent="$emit('on-copy-add')" -->
      <div class="el-backtop"
        style="right: 0rem; bottom: 26rem;">
        <el-tooltip class="item" effect="dark" content="查看进度" placement="left-start">
          <bs-ws-log-process ref="bsWsLogProcessId" :config="process" :emitterId="emitterId" :width="32" @change="onProcessChange"></bs-ws-log-process>
        </el-tooltip>
      </div>
    </a>



  mounted() {
    let that = this;

    //#region 执行进度
    let moduleKey = that.meta.mkey;
    let responseField = that.meta.field;
    that.emitterId = `${moduleKey}-mr-${responseField}-ra-import`;
    that.process = { title: "导入" }
    //#endregion

    that.loadData(true);
    // that.$store.dispatch("jeObj", that);
  },

      // #region 进度配置
      emitterId: null,
      process: {},
      pageFilter: {},
      processValue: 0,
      // #endregion 进度配置

     methods: {
      onProcessChange(val){
        //debugger;
        this.processValue=val;
      },
      call(type){
        if(type==='process'&&this.$refs['bsWsLogProcessId']){
          this.$refs['bsWsLogProcessId'].callResetProcess();
        }
      }
    },

    ###  调用  _bizEventId: that.emitterId

     that.$bsAjax.doBatSave(moduleKey, responseField, { _bizEventId: that.emitterId, _menuId: that.meta.menuId, _rowPageSize: that.excelTemplates.pageSize }, that.saveData, null).then(res => {

推送进度日志信息 使用

\rg3-pf\RG3.BO.Op\Provider\SubPushTraceLogBasisProvider.cs

  /// <summary>
        /// 推送进度日志信息
        /// </summary>
        /// <param name="pfMapper"></param>
        /// <param name="logInfoBasis"></param>
        /// <returns></returns>
        public Task Push(PFGlobalParameter pfMapper, LogInfoBasis logInfoBasis)
        {
            var dateT = pfMapper.LastDate ?? DateTimeUtil.Now();
            var pf = new PFGlobalParameter
            {
                FromEventId = pfMapper.FromEventId,
                LastDate = dateT,
                LastDateUtc = DateTimeUtil.DateUtcTimeStampMilliseconds(dateT),
                Process = logInfoBasis.Progress.ToString() ?? pfMapper.Process,// logInfoBasis.Progress.ToString(),
                UserId = pfMapper.UserId,// ?? _authProvider.GetCurrentUserId()?.ToString(),
                SysId = pfMapper.SysId,
                AppId = pfMapper.AppId,
                TenantId = pfMapper.TenantId,
                ChannelReceiver = pfMapper.ChannelReceiver,
                ChannelRule = pfMapper.ChannelRule,
                Message = logInfoBasis.LogContent ?? pfMapper.Message,
                OwnerId = pfMapper.OwnerId,
                ModuleKey = pfMapper.ModuleKey,
                SubBeforeKey = pfMapper.SubBeforeKey,
                ReponseField = pfMapper.ReponseField
            };
            return _capBus.PublishAsync<PFGlobalParameter>("pushpull.ws.process.log", pf);
            //return null;
        }
        private ISubPushTraceLogBasis _subPushTraceLogBasis;
         var log = new LogInfoBasis
                {
                    TraceId = pfGloal.FromTraceId,
                    EventId = pfGloal.FromEventId,
                    LogContent =  $"【{item.Remark}】保存结果记录数【{result}】条。";.Replace("【】", ""),
                    Progress = (record / total) * 100,
                    LogTime = DateTimeUtil.Now(),
                    ClientIp = pfGloal.ClientUserIp,
                    CreateBy = pfGloal.UserName,
                    CreateId = pfGloal.UserId
                };
                log.Progress = Math.Round(log.Progress, 0);
                if (log.Progress > 100)
                {
                    log.Progress = 100;
                }
                _subPushTraceLogBasis.Push(pfGloal, log);
文档更新时间: 2025-03-08 07:37   作者:admin