存储过程常用语法

CREATE OR REPLACE PROCEDURE P_OMS_MATERIAL_ARRIVED(STARTTIME IN VARCHAR2,ENDTIME IN VARCHAR2,CURRENT_TIME DATE,DATATYPE IN NUMBER) IS
  /********************************************************************************************************
  PURPOSE:        物资供应链已到货月度,季度,年度数据,近12月
  AUTHOR:         ZERO
  DEPT:           -----------------
  PARAMETER       STARTTIME-开始,ENDTIME-结束,DATATYPE-1,当天2,本月3,本季度4,本年,5本12年
  CREATE DATE:   2019-11-8
  *********************************************************************************************************/
  --CURRENT_TIME DATE;                                       --当前时间
  --V_SUMMARY_TYPE  NUMBER;                                  --统计类型:1、总量统计;2、节点统计;3、区局统计
  V_CURENT_STATUE NUMBER;                                  --物资跟踪环节(1,需求计划申报 2,物流处置,3,生产运输,4,物资到货)
  V_BEGIN_END_TYPE NUMBER;                                 --开始结束时间类型(1,按开始时间  2按结束时间)
  V_REPLANSTANDARETIME NUMBER(8);                          --需求计划标准时常
  V_LOGISTICSDEALSTANDARETIME NUMBER(8);                   --物流处置标准时常
  V_TRANSPORTSTANDARETIME NUMBER(8);                       --生产运输标准时常
  V_MATERIALSARRIVALSTANDARETIME NUMBER(8);                --物资到货标准时常
  V_DEPT_CODE VARCHAR2(50);                                --单位编码
  V_DEPT_NAME VARCHAR2(50);                                --单位名称
  /**
  * 所有单位部门编码游标,00000000代表所有的集合
  */
  CURSOR CURSOR_DEPT IS (SELECT T.DEPT_CODE,T.DEPT_NAME FROM OMS_REQUIREMENT_DEPT T UNION ALL SELECT '00000000','深圳供电局有限公司' FROM DUAL);
BEGIN
  /**
  * 当前时间
  */
  --CURRENT_TIME := TO_DATE(TO_CHAR(SYSDATE, 'yyyy-mm-dd'), 'yyyy-mm-dd');
  --CURRENT_TIME := TO_DATE('2019-11-19', 'yyyy-mm-dd');
  /**
   * 设置标准时常,标准时常后续根据不同物资设置,次标准时常为最初的需求值,对前者不影响
  */
  SELECT ST.SUBPROCESS_STANDARE_TIME INTO V_REPLANSTANDARETIME FROM OMS_SUBPROCESS_STANDARE_TIME ST WHERE ST.SUBPROCESS_TYPE_CODE = 1;--需求计划申报
  SELECT ST.SUBPROCESS_STANDARE_TIME INTO V_LOGISTICSDEALSTANDARETIME FROM OMS_SUBPROCESS_STANDARE_TIME ST WHERE ST.SUBPROCESS_TYPE_CODE = 2;--物流处置
  SELECT ST.SUBPROCESS_STANDARE_TIME INTO V_TRANSPORTSTANDARETIME FROM OMS_SUBPROCESS_STANDARE_TIME ST WHERE ST.SUBPROCESS_TYPE_CODE = 3;--生产运输
  SELECT ST.SUBPROCESS_STANDARE_TIME INTO V_MATERIALSARRIVALSTANDARETIME FROM OMS_SUBPROCESS_STANDARE_TIME ST WHERE ST.SUBPROCESS_TYPE_CODE = 4;--物资到货
  
  /***
  ** 先进行数据补0,补全列表所需要的所有格式数据,然后再更新真实数据
  **/
  V_BEGIN_END_TYPE := 1;--循环按开始和按结束进行统计 V_BEGIN_END_TYPE:1-按开始 2-按结束
  WHILE V_BEGIN_END_TYPE <= 2 LOOP
    V_CURENT_STATUE := 0;--0节点是点击已到货未到货显示的列表数据(节点0只需要按当天的维度统计,下面会删除非当天0节点的数据)
    WHILE V_CURENT_STATUE  <= 4 LOOP--已到货的只会在第四个节点存在明细数据,遍历是为了补充前三个节点的数据
      /*
      ** 插入0数据-初始化数据
      */ 
      INSERT INTO OMS_REQ_STATUS_STATISTICS
      SELECT 
        SYS_GUID() ID, --唯一标识符ID
        DEPT_ID REQUIREMENT_DEPT_ID, --申购部门ID
        DEPT_CODE REQUIREMENT_DEPT_CODE, --申购部门编码
        DEPT_NAME REQUIREMENT_DEPT_NAME, --申购部门名称
        CURRENT_TIME MONITOR_DATE, --监控日期
        1 RECEIPT_STATUS, --是否已入库(该值必须有,默认0未到货 1已到货)
        0 REQUIRE_TOTAL, --需求条目总数
        0 NO_OVERTIME_NUM, --未超时条目数
        0 OVERTIME_NUM, --超时条目数
        0 AVERAGE_TIME, --平均时长
        CASE
          WHEN V_CURENT_STATUE = 1 THEN V_REPLANSTANDARETIME
          WHEN V_CURENT_STATUE = 2 THEN V_LOGISTICSDEALSTANDARETIME
          WHEN V_CURENT_STATUE = 3 THEN V_TRANSPORTSTANDARETIME
          WHEN V_CURENT_STATUE = 4 THEN V_MATERIALSARRIVALSTANDARETIME
        END STANDARD_TIME, --标准时常
        DATATYPE STATISTICS_TYPE, --统计时间段类型(1,当天2,本月3,本季度4,本年,5本12年)
        V_CURENT_STATUE CURENT_STATUE, --当前所处流程节点(1,需求计划申报 2,物流处置,3,生产运输,4,物资到货)
        'SuperAdmin' CREATOR_ID, --创建人ID
        'SuperAdmin' CREATOR_NAME, --创建人名称
        SYSDATE CREATE_DATE, --创建时间
        NULL MODIFIER_ID, --修改人ID
        NULL MODIFIER_NAME, --修改人名称
        NULL MODIFY_DATE, --修改时间
        V_BEGIN_END_TYPE BEGIN_END_TYPE, --开始结束时间类型(1,按开始时间  2按结束时间)
        3 SUMMARY_TYPE --统计类型:1、总量统计;2、节点统计;3、区局统计
      FROM (SELECT DEPT_CODE DEPT_ID, DEPT_CODE, DEPT_NAME
            FROM OMS_REQUIREMENT_DEPT
          UNION ALL
          SELECT '00000000' DEPT_ID,
                 '00000000' DEPT_CODE,
                 '深圳供电局有限公司' DEPT_NAME
            FROM DUAL);
    V_CURENT_STATUE := V_CURENT_STATUE + 1;
    END LOOP;
  --循环计数加一,1-按开始 2-按结束
  V_BEGIN_END_TYPE := V_BEGIN_END_TYPE + 1;
  END LOOP;
  COMMIT;
  
  /**
  ** 保留当天按结束时间统计的0节点已到货数据,其他0节点数据删除
  */
  DELETE FROM OMS_REQ_STATUS_STATISTICS WHERE SUMMARY_TYPE = 3 AND RECEIPT_STATUS = 1 AND MONITOR_DATE = CURRENT_TIME AND CURENT_STATUE = 0 AND BEGIN_END_TYPE <> 2 AND STATISTICS_TYPE <> 1;
  COMMIT;

  /**
  * 打开游标
  */
  OPEN CURSOR_DEPT;
    LOOP
      FETCH CURSOR_DEPT INTO V_DEPT_CODE,V_DEPT_NAME;
      EXIT WHEN CURSOR_DEPT%NOTFOUND;
      V_BEGIN_END_TYPE := 1;--循环按开始和按结束进行统计 V_BEGIN_END_TYPE:1-按开始 2-按结束
      
        /***************************************抽取各单位统计数据(页面底部列表)_开始****************************************/
        WHILE V_BEGIN_END_TYPE <= 2 LOOP
          V_CURENT_STATUE := 1;
          WHILE V_CURENT_STATUE  <= 4 LOOP--已到货的只会在第四个节点存在明细数据,遍历是为了补充前三个节点的数据
            /**
            ** 计算真实数据更新上面的0数据
            */
            UPDATE OMS_REQ_STATUS_STATISTICS T
            SET (REQUIRE_TOTAL,NO_OVERTIME_NUM,OVERTIME_NUM,AVERAGE_TIME,MODIFIER_ID,MODIFIER_NAME,MODIFY_DATE) = 
            (SELECT
               T1.REQUIRE_TOTAL, --需求条目总数
               T1.NO_OVERTIME_NUM, --未超时条目数
               T1.REQUIRE_TOTAL - T1.NO_OVERTIME_NUM OVERTIME_NUM, --超时条目数
               DECODE(T1.REQUIRE_TOTAL,0,0,T1.TOTALTIME/T1.REQUIRE_TOTAL) AVERAGE_TIME, --平均时长,总时长除以总条数
               T1.MODIFIER_ID, --修改人ID
               T1.MODIFIER_NAME, --修改人名称
               T1.MODIFY_DATE --修改时间
              FROM (SELECT COUNT(1) REQUIRE_TOTAL, --需求条目总数,需求采购统计所有环节,其他三个环节统计专项采购
                NVL(SUM(CASE
                     WHEN V_CURENT_STATUE = 1 AND NVL(TR.REPLAN_OVERTIME, 0) <= 0 THEN 1
                     WHEN V_CURENT_STATUE = 2 AND NVL(TR.LOGISTICS_DEAL_OVERTIME, 0) <= 0 THEN 1
                     WHEN V_CURENT_STATUE = 3 AND NVL(TR.TRANSPORT_OVERTIME, 0) <= 0 THEN 1
                     WHEN V_CURENT_STATUE = 4 AND NVL(TR.MATERIALS_ARRIVAL_OVERTIME, 0) <= 0 THEN 1
                     ELSE 0
                   END),0) NO_OVERTIME_NUM, --未超时条目数,时常小于等于零则未超时
                NVL(SUM(CASE
                     WHEN V_CURENT_STATUE = 1 THEN NVL(TR.REPLAN_CONSUMING_TIME, 0)
                     WHEN V_CURENT_STATUE = 2 THEN NVL(TR.LOGISTICS_CONSUMING_TIME, 0)
                     WHEN V_CURENT_STATUE = 3 THEN NVL(TR.TRANSPORT_CONSUMING_TIME, 0)
                     WHEN V_CURENT_STATUE = 4 THEN NVL(TR.MATERIALS_CONSUMING_TIME, 0) ELSE 0
                   END),0) TOTALTIME, -- 总时长
                'SuperAdmin' MODIFIER_ID, --修改人ID
                'SuperAdmin' MODIFIER_NAME, --修改人名称
                SYSDATE MODIFY_DATE --修改时间
              FROM OMS_REQUIREMENT_PROCESS_TRACE TR,
                OMS_MATERIAL_REQUIREMENT_INFO TI
              WHERE TR.OMS_MATERIAL_REQUIREMENTINFOID = TI.OMS_MATERIAL_REQUIREMENTINFOID(+)
               AND TI.REQUIREMENT_DEPT_CODE LIKE DECODE(V_DEPT_CODE,'00000000','09',V_DEPT_CODE) || '%'--编码前缀匹配叶子(子集)集合数据
               --AND LENGTH(TI.REQUIREMENT_DEPT_CODE) = DECODE(V_DEPT_CODE,'00000000',6,LENGTH(TI.REQUIREMENT_DEPT_CODE))--为了处理深圳供电局只往下统计一层
               AND TR.MONITOR_DATE = CURRENT_TIME --统计当天抽取的数据
               AND TI.CREATE_DATE = CURRENT_TIME
               AND TO_DATE(STARTTIME, 'yyyy-mm-dd') <= (CASE V_BEGIN_END_TYPE WHEN 1 THEN TRUNC(TR.REPLAN_BEGIN_TIME) ELSE TRUNC(TR.MATERIALS_ARRIVAL_END_TIME) END)
               AND TO_DATE(ENDTIME, 'yyyy-mm-dd') >= (CASE V_BEGIN_END_TYPE WHEN 1 THEN TRUNC(TR.REPLAN_BEGIN_TIME) ELSE TRUNC(TR.MATERIALS_ARRIVAL_END_TIME) END)
               AND TR.RECEIPT_STATUS = 0 --已到货
               AND TR.MATERIAL_ITEM_TYPE = 1 --已到货所有环节都统计专项采购的数据
               AND TR.CURENT_STATUE = 4) T1 )
              WHERE T.CURENT_STATUE = V_CURENT_STATUE
               AND T.REQUIREMENT_DEPT_CODE = V_DEPT_CODE
               AND T.MONITOR_DATE = CURRENT_TIME
               AND T.RECEIPT_STATUS = 1
               AND T.BEGIN_END_TYPE =V_BEGIN_END_TYPE
               AND T.SUMMARY_TYPE = 3
               AND T.STATISTICS_TYPE = DATATYPE;
               COMMIT;
            --循环计数加一,1,需求计划申报 2,物流处置,3,生产运输,4,物资到货
          V_CURENT_STATUE := V_CURENT_STATUE + 1;
          END LOOP;
            --循环计数加一,1-按开始 2-按结束
          V_BEGIN_END_TYPE := V_BEGIN_END_TYPE + 1;
        END LOOP;
        /*************************************************抽取各单位统计数据(页面底部列表)_结束****************************************/
        
        
        
        /*************************************************点击已到货节点为0统计(页面底部列表)_开始*************************************/
        IF DATATYPE = 1 THEN
          UPDATE OMS_REQ_STATUS_STATISTICS T
          SET (REQUIRE_TOTAL,NO_OVERTIME_NUM,OVERTIME_NUM,AVERAGE_TIME,STANDARD_TIME,MODIFIER_ID,MODIFIER_NAME,MODIFY_DATE) = 
          (SELECT
           T1.REQUIRE_TOTAL, --需求条目总数
           T1.NO_OVERTIME_NUM, --未超时条目数
           T1.REQUIRE_TOTAL - T1.NO_OVERTIME_NUM OVERTIME_NUM, --超时条目数
           DECODE(T1.REQUIRE_TOTAL,0,0,T1.TOTALTIME/T1.REQUIRE_TOTAL) AVERAGE_TIME, --平均时长,总时长除以总条数
           NULL STANDARD_TIME,--不需要标准
           T1.MODIFIER_ID, --修改人ID
           T1.MODIFIER_NAME, --修改人名称
           T1.MODIFY_DATE --修改时间
          FROM (
            SELECT COUNT(1) REQUIRE_TOTAL, --需求条目总数
                  NVL(SUM(CASE                 --未超时(物资从开始到结束总时长与四个节点标准时常相比较)正常情况下到货的物资不会存在没有结束时间
                    WHEN DECODE(TR.MATERIALS_ARRIVAL_END_TIME,
                      NULL,
                      ROUND(TO_NUMBER(CURRENT_TIME - TR.REPLAN_BEGIN_TIME), 2) -
                      (TR.REPLAN_STANDARETIME + TR.LOGISTICS_DEAL_STANDARETIME + TR.TRANSPORT_STANDARETIME + TR.MATERIALS_ARRIVAL_STANDARETIME),
                      ROUND(TO_NUMBER(TR.MATERIALS_ARRIVAL_END_TIME - TR.REPLAN_BEGIN_TIME), 2) -
                      (TR.REPLAN_STANDARETIME + TR.LOGISTICS_DEAL_STANDARETIME + TR.TRANSPORT_STANDARETIME + TR.MATERIALS_ARRIVAL_STANDARETIME)) <= 0 THEN 1
                    ELSE 0 END),0) NO_OVERTIME_NUM, --未超时条目数
                  NVL(SUM(NVL(DECODE(TR.MATERIALS_ARRIVAL_END_TIME, NULL,
                    ROUND(TO_NUMBER(CURRENT_TIME - TR.REPLAN_BEGIN_TIME), 2),
                    ROUND(TO_NUMBER(TR.MATERIALS_ARRIVAL_END_TIME - TR.REPLAN_BEGIN_TIME), 2)), 0)),0) TOTALTIME, --总时长
                  SYSDATE CREATE_DATE, --创建时间
                  'SuperAdmin' MODIFIER_ID, --修改人ID
                  'SuperAdmin' MODIFIER_NAME, --修改人名称
                  SYSDATE MODIFY_DATE --修改时间
             FROM OMS_REQUIREMENT_PROCESS_TRACE TR,
                  OMS_MATERIAL_REQUIREMENT_INFO TI
            WHERE TR.OMS_MATERIAL_REQUIREMENTINFOID =
                  TI.OMS_MATERIAL_REQUIREMENTINFOID(+)
              AND TR.RECEIPT_STATUS = 0 --已到货
              AND TR.MONITOR_DATE = CURRENT_TIME --统计当天抽取的数据
              AND TI.CREATE_DATE = CURRENT_TIME
              AND TRUNC(TR.MATERIALS_ARRIVAL_END_TIME) = TO_DATE(ENDTIME, 'yyyy-mm-dd')--统计当天到货
              AND TRUNC(TR.MATERIALS_ARRIVAL_END_TIME) = TO_DATE(STARTTIME, 'yyyy-mm-dd')--统计当天到货
              AND TI.REQUIREMENT_DEPT_CODE LIKE DECODE(V_DEPT_CODE, '00000000', '09', V_DEPT_CODE) || '%' --编码前缀匹配叶子(子集)集合数据
              --AND LENGTH(TI.REQUIREMENT_DEPT_CODE) = DECODE(V_DEPT_CODE, '00000000', 6, LENGTH(TI.REQUIREMENT_DEPT_CODE)) --为了处理深圳供电局只往下统计一层
          ) T1)
          WHERE T.CURENT_STATUE = 0
           AND T.REQUIREMENT_DEPT_CODE = V_DEPT_CODE
           AND T.MONITOR_DATE = CURRENT_TIME
           AND T.RECEIPT_STATUS = 1
           AND T.BEGIN_END_TYPE =2--按结束
           AND T.SUMMARY_TYPE = 3
           AND T.STATISTICS_TYPE = DATATYPE;--当天
           COMMIT;
        END IF;
        /*********************************************点击已到货节点为0统计(页面底部列表)_结束*******************************/
        
    END LOOP;--游标循环
  CLOSE CURSOR_DEPT;--游标结束
  
  
  /*********************************************抽取各单位四个节点统计数据(页面中部)_开始*********************************/
  INSERT INTO OMS_REQ_STATUS_STATISTICS
    SELECT SYS_GUID() ID, --唯一标识符ID
         REQUIREMENT_DEPT_ID, --申购部门ID
         REQUIREMENT_DEPT_CODE, --申购部门编码
         REQUIREMENT_DEPT_NAME, --申购部门名称
         MONITOR_DATE, --监控日期
         RECEIPT_STATUS, --是否已入库(该值必须有,默认0未到货 1已到货)
         SUM(NVL(REQUIRE_TOTAL,0)) REQUIRE_TOTAL, --需求条目总数
         SUM(NVL(NO_OVERTIME_NUM,0)) NO_OVERTIME_NUM, --未超时条目数
         SUM(NVL(OVERTIME_NUM,0)) OVERTIME_NUM, --超时条目数
         DECODE(SUM(NVL(REQUIRE_TOTAL,0)),0,0,SUM(NVL(AVERAGE_TIME,0)) / SUM(NVL(REQUIRE_TOTAL,0))) AVERAGE_TIME, --平均时长
         CASE
            WHEN CURENT_STATUE = 1 THEN V_REPLANSTANDARETIME
            WHEN CURENT_STATUE = 2 THEN V_LOGISTICSDEALSTANDARETIME
            WHEN CURENT_STATUE = 3 THEN V_TRANSPORTSTANDARETIME
            WHEN CURENT_STATUE = 4 THEN V_MATERIALSARRIVALSTANDARETIME
         END STANDARD_TIME, --标准时长
         STATISTICS_TYPE, --统计时间段类型(1,当天2,本月3,本季度4,本年,5本12年)
         CURENT_STATUE, --当前所处流程节点(1,需求计划申报 2,物流处置,3,生产运输,4,物资到货)
         'SuperAdmin' CREATOR_ID, --创建人ID
         'SuperAdmin' CREATOR_NAME, --创建人名称
         SYSDATE CREATE_DATE, --创建时间
         'SuperAdmin' MODIFIER_ID, --修改人ID
         'SuperAdmin' MODIFIER_NAME, --修改人名称
         SYSDATE MODIFY_DATE, --修改时间
         BEGIN_END_TYPE, --开始结束时间类型(1,按开始时间  2按结束时间)
         2 SUMMARY_TYPE --统计类型:1、总量统计;2、节点统计;3、区局统计
    FROM OMS_REQ_STATUS_STATISTICS
    WHERE MONITOR_DATE = CURRENT_TIME
     AND RECEIPT_STATUS = 1
     AND CURENT_STATUE IN (1,2,3,4)--排除节点为0数据
     AND STATISTICS_TYPE = DATATYPE
     AND SUMMARY_TYPE = 3
     GROUP BY MONITOR_DATE,
        CURENT_STATUE,
        SUMMARY_TYPE,
        REQUIREMENT_DEPT_CODE, 
        REQUIREMENT_DEPT_ID,
        REQUIREMENT_DEPT_NAME,
        RECEIPT_STATUS,
        BEGIN_END_TYPE,
        STATISTICS_TYPE;
   COMMIT;
  /*******************************************抽取各单位四个节点统计数据(页面中部)_结束***********************************/
  
  IF DATATYPE = 1 THEN
    /**
    ** 删除已到货当天按开始时间统计的数据,当天到货只有按结束的统计
    */
    DELETE FROM OMS_REQ_STATUS_STATISTICS T WHERE T.RECEIPT_STATUS = 1 AND T.MONITOR_DATE = CURRENT_TIME AND STATISTICS_TYPE = 1 AND BEGIN_END_TYPE <> 2;
    COMMIT;
    
    /**
    ** 最顶层的统计数据只保留当天的数据
    */
    INSERT INTO OMS_REQ_STATUS_STATISTICS
      SELECT SYS_GUID() ID, --唯一标识符ID
           REQUIREMENT_DEPT_ID, --申购部门ID
           REQUIREMENT_DEPT_CODE, --申购部门编码
           REQUIREMENT_DEPT_NAME, --申购部门名称
           MONITOR_DATE, --监控日期
           RECEIPT_STATUS, --是否已入库(该值必须有,默认0未到货 1已到货)
           SUM(NVL(REQUIRE_TOTAL,0)) REQUIRE_TOTAL, --需求条目总数
           SUM(NVL(NO_OVERTIME_NUM,0)) NO_OVERTIME_NUM, --未超时条目数
           SUM(NVL(OVERTIME_NUM,0)) OVERTIME_NUM, --超时条目数
           DECODE(SUM(NVL(REQUIRE_TOTAL,0)),0,0,SUM(NVL(AVERAGE_TIME,0)) / SUM(NVL(REQUIRE_TOTAL,0))) AVERAGE_TIME, --平均时长
           NULL STANDARD_TIME,--不需要标准
           STATISTICS_TYPE, --统计时间段类型(1,当天2,本月3,本季度4,本年,5本12年)
           CURENT_STATUE, --此值为0,顶部汇总节点为0
           'SuperAdmin' CREATOR_ID, --创建人ID
           'SuperAdmin' CREATOR_NAME, --创建人名称
           SYSDATE CREATE_DATE, --创建时间
           'SuperAdmin' MODIFIER_ID, --修改人ID
           'SuperAdmin' MODIFIER_NAME, --修改人名称
           SYSDATE MODIFY_DATE, --修改时间
           BEGIN_END_TYPE, --开始结束时间类型(1,按开始时间  2按结束时间)
           1 SUMMARY_TYPE --统计类型:1、总量统计;2、节点统计;3、区局统计
      FROM OMS_REQ_STATUS_STATISTICS
      WHERE MONITOR_DATE = CURRENT_TIME
       AND RECEIPT_STATUS = 1--已到货
       AND CURENT_STATUE = 0--最顶层数据只需要汇总节点为0的数据
       AND STATISTICS_TYPE = DATATYPE--只有当天的时候会执行这一段脚本
       AND SUMMARY_TYPE = 3--根据第三层数据进行汇总
       AND BEGIN_END_TYPE = 2--按结束
       GROUP BY MONITOR_DATE,
          CURENT_STATUE,
          SUMMARY_TYPE,
          REQUIREMENT_DEPT_CODE, 
          REQUIREMENT_DEPT_ID,
          REQUIREMENT_DEPT_NAME,
          RECEIPT_STATUS,
          BEGIN_END_TYPE,
          STATISTICS_TYPE;
    COMMIT;
  END IF;
  
END;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值