任务描述
暂无
需求描述

背景

95%上网率提升,库存异常导致无法按期发货,修复主子表库存数据


需求

数据修复步骤
1.修复主库存锁定异常
根据实际的业务场景(订单锁定+包裹锁定+退货单锁定+产品返修锁定)修复锁定
场景1:实际锁定>库存锁定 :库存可用转锁定,如果可用不足,可用库存直接清零,锁定数据和实际锁定保持一致
场景2:实际锁定<库存锁定: 库存锁定转可用
2.修复子库存锁定异常
2.1 修复包裹拣货锁定和子库存锁定详情不一致的场景
以包裹锁定为主:修改子库存锁定详情
2.2 修复子库存锁定详情和库存锁定
根据锁定详情实际锁定修复
场景1:实际锁定>库存锁定 :库存可用转锁定,如果可用不足,可用库存直接清零,锁定数据和实际锁定保持一致
场景2:实际锁定<库存锁定: 库存锁定转可用
3.修改主子库存不一致(当前库存不一致)
以主表为主
3.1 主库存大于子库存
场景1:子库存有记录,如果子库存存在锁定,就找最新处理的库位库存增加可用
场景2:子库存无记录,添加记录,库位如何取建议方案:新建一个特殊库位,然后让客户自己去转移
3.2 主库存小于子库存
场景1:子库存可用足够扣除,直接扣除
场景2:子库存可用不够扣除,有锁定,(业务释放锁定后处理修复)
备注:
1、修复子库存锁定时,如果存在子库存锁定但并无子库存记录,数据不修复,需要手动检查后在处理
2、修复主子库存不一致的数据时,需要考虑如果存在已发货但主表库存未扣除,子表已扣除,那么主表库存要减去已发货数量
3、修复主子库存不一致的数据时,需要考虑如果存在已发货但主表库存已扣除,子表未扣除,那么主表库存要加上已发货数量
4、修复主子库存不一致的数据时,需要考虑如果存在未发货但子表库存已扣除的情况,那么子表需要加上已扣除的数量后再做数据对比

验收标准
暂无
历史记录  
  1. 2022-12-08 17:58:45, 由 程伟 创建。
  2. 2022-12-09 14:29:48, 由 谢业福 添加备注。

    第一步:前提修复

    1.修复主库存,可用和锁定为0的数据


    DECLARE @CustomerId INT;
    DECLARE @WarehouseId INT;
    SET @CustomerId=1;
    SET @WarehouseId=5312;
    
    -- 处理锁定数为负数的和可用为负数的
    -- UPDATE RB_WareHouse_Product SET GoodNum=0 WHERE CustomerID=@CustomerId AND WareHouseID=@WarehouseId AND GoodNum<0
    -- UPDATE RB_WareHouse_Product SET LockNum=0 WHERE CustomerID=@CustomerId AND WareHouseID=@WarehouseId AND LockNum<0
    2.修复子库存锁定详情有数据 但是子表库位库存记录没有的

    DECLARE @CustomerId INT;
    DECLARE @WarehouseId INT;
    DECLARE @PackageAddTime DATETIME;
    SET @CustomerId=1;
    SET @WarehouseId=5312;
    SET @PackageAddTime='2021-01-01' --包裹创建时间
     --修复有锁定详情无库位库存记录的数据
     --update wpl set wpl.CustomerID=-1 from RB_WareHouse_LockPositionDetail wpl
     --left join RB_WareHouse_OneProductMorePosition_Product wopp(nolock) on wpl.SKU=wopp.SKU and wpl.PositionID=wopp.PositionID and wpl.CustomerID=wopp.CustomerID and wpl.WarehouseID=wopp.WareHouseID
     --where isnull(wopp.ID,0)=0 and wpl.CustomerID=@CustomerId and wpl.WarehouseID=@WarehouseId
    

  3. 2022-12-09 14:30:58, 由 谢业福 添加备注。

    第二步:修复主库存锁定异常

    DECLARE @CustomerId INT;
    DECLARE @WarehouseId INT;
    SET @CustomerId=1;
    SET @WarehouseId=5312;
    IF( OBJECT_ID('tempdb..#WarehouseProduct') IS NOT NULL  )
    BEGIN
      DROP Table #WarehouseProduct
    END 
    
    SELECT wp.ID,
           wp.CustomerID,
    	   wp.WareHouseID,
           wp.SKU,
           wp.GoodNum,
           wp.LockNum,
           wp.AddTime,
           wp.UpdateTime,
    	   wp.PositionID,
    	   0 RealLockNum,
    	   0 IsUpdate
    	   INTO #WarehouseProduct
    FROM dbo.RB_WareHouse_Product wp (nolock)   
    WHERE wp.CustomerID=@CustomerId AND wp.WareHouseID=@WarehouseId
    
    
    --1. 订单锁定
    UPDATE a SET a.RealLockNum=a.RealLockNum+b.LockNum
    FROM #WarehouseProduct a INNER JOIN 
    (
    SELECT wp.ID,
           SUM(ISNULL(l.LockNum,0)) LockNum 
    FROM #WarehouseProduct wp (NOLOCK)   
        LEFT JOIN RB_OrderList l (NOLOCK)
            ON wp.SKU = l.SKU
               AND wp.CustomerID = l.CustomerID
        LEFT JOIN RB_OrderInfo o (NOLOCK)
            ON wp.WareHouseID = o.WareHouseID
               AND wp.CustomerID = o.CustomerID
               AND l.OrderCode = o.OrderCode
        LEFT JOIN RB_OrderSource s (NOLOCK)
            ON o.OrderSourceID = s.ID
               AND o.CustomerID = s.CustomerID
    WHERE   
           l.LockNum > 0
          AND o.ID > 0 
    GROUP BY wp.ID
    ) b ON b.ID = a.ID
    
    --2. 包裹锁定
    UPDATE a SET a.RealLockNum=a.RealLockNum+b.ProductNum
    FROM #WarehouseProduct a INNER JOIN 
    (
    SELECT wp.ID,
    	  SUM(ISNULL(d.ProductNum,0)) ProductNum
    FROM #WarehouseProduct wp (NOLOCK)
        LEFT JOIN RB_Procurement_Order_Package_OrderDetail d (NOLOCK)
            ON wp.SKU = d.SKU
               AND wp.CustomerID = d.CustomerID
        LEFT JOIN RB_Procurement_Order_Package p (NOLOCK)
            ON p.ID = d.PackageID
               AND p.CustomerID = d.CustomerID
               AND wp.WareHouseID = p.WareHouseID
        LEFT JOIN RB_Procurement_Order_PositionCode c
            ON d.OrderListID = c.OrderListID
               AND d.CustomerID = c.CustomerID
    WHERE p.PackageState IN  (0,1,2,5) 
          AND p.ID > 0
          AND c.StockOperateTime IS NULL
    GROUP BY wp.ID
    ) b ON b.ID = a.ID
    
    
    
    --3. 退货单锁定
    UPDATE a SET a.RealLockNum=a.RealLockNum+b.ReturnQty
    FROM #WarehouseProduct a INNER JOIN 
    (
    SELECT wp.ID,SUM(ISNULL(srd.ReturnQty,0)) ReturnQty
    FROM #WarehouseProduct wp (NOLOCK)
        LEFT JOIN RB_SupplierReturnGood_Detail srd (NOLOCK)
            ON wp.SKU = srd.SKU
               AND wp.CustomerID = srd.CustomerID
               AND wp.WareHouseID = srd.WareHouseID
        LEFT JOIN RB_SupplierReturnGood sr (NOLOCK)
            ON sr.CustomerID = srd.CustomerID
               AND sr.ReturnCode = srd.ReturnCode
    WHERE sr.Status IN ( 0, 1, 7, 8, 12 )
    GROUP BY wp.ID
    ) b ON b.ID = a.ID
    
    
    --4. 产品返修锁定
    UPDATE a SET a.RealLockNum=a.RealLockNum+b.LockNumber
    FROM #WarehouseProduct a INNER JOIN 
    (
    SELECT wp.ID , SUM(ISNULL(pd.LockNumber,0)) LockNumber
    FROM RB_Procurement_Rework pr (NOLOCK)
        LEFT JOIN RB_Procurement_ReworkDetail pd (NOLOCK)
            ON pr.ID = pd.ReworkID
        LEFT JOIN RB_Procurement_Detail_SingleList ds (NOLOCK)
            ON pr.ProcurementSingleNo = ds.Single_NO
        LEFT JOIN RB_Procurement_List dl (NOLOCK)
            ON ds.P_Code = dl.P_Code
        LEFT JOIN #WarehouseProduct wp (NOLOCK)
            ON dl.WareHouseID = wp.WareHouseID
               AND dl.CustomerID = wp.CustomerID
               AND pd.SKU = wp.SKU
    WHERE pr.ReworkState = 1
          AND pd.LockNumber > 0
    	  AND wp.ID>0
    GROUP BY wp.ID
    ) b ON b.ID = a.ID
    
    SELECT * FROM #WarehouseProduct WHERE RealLockNum!=LockNum

  4. 2022-12-09 14:32:36, 由 谢业福 添加备注。

    第三步:修复子库存包裹锁定异常

    DECLARE @CustomerId INT;
    DECLARE @WarehouseId INT;
    DECLARE @PackageAddTime DATETIME;
    SET @CustomerId=1;
    SET @WarehouseId=5312;
    SET @PackageAddTime='2021-01-01' --包裹创建时间
    
    --1.正常拣货的
    IF( OBJECT_ID('tempdb..#tempOperateStock1') IS NOT NULL  )
    BEGIN
      DROP Table #tempOperateStock1
    END 
    SELECT a.SKU,a.PositionID, SUM(a.LockNum) AS LockNum,b.PrintBatchNo 
    INTO #tempOperateStock1
     FROM RB_Package_OperateStock(NOLOCK) a
    INNER JOIN  RB_Procurement_Order_Package(NOLOCK) b ON a.CustomerID=b.CustomerID AND a.PackageID=b.ID
    LEFT JOIN RB_Package_Picking_ChildWarehouseArea (NOLOCK) c ON a.AreaTaskNumber=c.AreaTaskNumber AND a.CustomerID=c.CustomerID
    WHERE a.CustomerID=@CustomerId AND a.WareHouseID=@WarehouseId AND a.IsDelete=0 AND a.LockNum>0
    AND  b.AddTime >= @PackageAddTime
     AND (c.ID IS NULL OR c.TaskSource!=1)
     GROUP BY a.SKU,a.PositionID,b.PrintBatchNo
    
    --2.异常拣货的
    IF( OBJECT_ID('tempdb..#tempOperateStock2') IS NOT NULL  )
    BEGIN
      DROP Table #tempOperateStock2
    END 
    SELECT a.SKU,a.PositionID, SUM(a.LockNum) AS LockNum,b.PrintBatchNo 
    INTO #tempOperateStock2
     FROM RB_Package_Picking_AbnormalLock_Detail(NOLOCK) a
    INNER JOIN  RB_Procurement_Order_Package(NOLOCK) b ON a.CustomerID=b.CustomerID AND a.PackageID=b.ID
    LEFT JOIN RB_Package_Picking_ChildWarehouseArea (NOLOCK) c ON a.AreaTaskNumber=c.AreaTaskNumber AND a.CustomerID=c.CustomerID
    WHERE a.CustomerID=@CustomerId AND a.WareHouseID=@WarehouseId AND a.IsDelete=0 AND a.LockNum>0 AND a.IsAbnormal=0
    AND  b.AddTime >= @PackageAddTime
     AND (c.ID IS NULL OR c.TaskSource!=1)
     GROUP BY a.SKU,a.PositionID,b.PrintBatchNo
    
     --3.统计子表包裹锁定
     IF( OBJECT_ID('tempdb..#tempLockPositionDetail') IS NOT NULL  )
    BEGIN
      DROP Table #tempLockPositionDetail
    END 
     SELECT SKU,PositionID,SUM(LockNum) AS LockNum,OrderCode 
     INTO #tempLockPositionDetail FROM RB_WareHouse_LockPositionDetail(NOLOCK) 
     WHERE CustomerID=@CustomerId AND WarehouseID=@WarehouseId AND OrderType=6 AND LockNum>0
     GROUP BY PositionID,SKU,OrderCode
     --4.对比
      IF( OBJECT_ID('tempdb..#tempLockPositionDetailDiff') IS NOT NULL  )
    BEGIN
      DROP Table #tempLockPositionDetailDiff
    END 
     SELECT a.SKU,a.PositionID,a.OrderCode,a.LockNum AS ZiLockNum,ISNULL(b.LockNum,0) AS NormalLockNum,ISNULL(c.LockNum,0) AS IsAbNormalLockNum,
     a.LockNum-ISNULL(b.LockNum,0)-ISNULL(c.LockNum,0) AS  DiffNum
     INTO  #tempLockPositionDetailDiff
      FROM #tempLockPositionDetail a
     LEFT JOIN #tempOperateStock1 b  ON a.SKU=b.SKU AND a.PositionID=b.PositionID AND a.OrderCode=b.PrintBatchNo
     LEFT JOIN #tempOperateStock2 c  ON a.SKU=c.SKU AND a.PositionID=c.PositionID AND a.OrderCode=c.PrintBatchNo
     DROP Table #tempOperateStock1;
     DROP Table #tempOperateStock2;
     DROP Table #tempLockPositionDetail
    
     SELECT * FROM #tempLockPositionDetailDiff WHERE DiffNum!=0
     select count(1) from  RB_WareHouse_LockPositionDetail a (NOLOCK) 
     INNER JOIN #tempLockPositionDetailDiff b ON a.PositionID=b.PositionID AND a.SKU=b.SKU AND a.OrderCode=b.OrderCode AND a.LockNum=b.ZiLockNum 
     WHERE a.CustomerID=@CustomerId AND a.WarehouseID=@WarehouseId 
     --修复
     --UPDATE a SET a.LockNum=(b.NormalLockNum+b.IsAbNormalLockNum)  FROM RB_WareHouse_LockPositionDetail a INNER JOIN #tempLockPositionDetailDiff b
     --ON a.PositionID=b.PositionID AND a.SKU=b.SKU AND a.OrderCode=b.OrderCode AND a.LockNum=b.ZiLockNum 
     --WHERE a.CustomerID=@CustomerId AND a.WarehouseID=@WarehouseId and b.DiffNum!=0

  5. 2022-12-09 14:33:47, 由 谢业福 添加备注。

    第四步:修复子库存锁定异常

    DECLARE @CustomerId INT;
    DECLARE @WarehouseId INT;
    DECLARE @PackageAddTime DATETIME;
    SET @CustomerId=1;
    SET @WarehouseId=5312;
    SET @PackageAddTime='2021-01-01' --包裹创建时间
    
    --1.统计锁定
    IF( OBJECT_ID('tempdb..#tempLockPositionDetailTotalLock') IS NOT NULL  )
    BEGIN
      DROP Table #tempLockPositionDetailTotalLock
    END 
    SELECT CustomerID,SKU,PositionID,SUM(LockNum) AS LockNum 
    INTO #tempLockPositionDetailTotalLock
    FROM dbo.RB_WareHouse_LockPositionDetail (NOLOCK) 
    WHERE CustomerID=@CustomerId AND WarehouseID=@WarehouseId AND LockNum>0
    GROUP BY CustomerID,SKU,PositionID
    
    
    --2.查询子表库存
    
    IF( OBJECT_ID('tempdb..#tempwarehousePosition') IS NOT NULL  )
    BEGIN
     DROP Table #tempwarehousePosition
    END 
    SELECT a.*,(a.LockNum-a.RealLockNum) DiffNum INTO #tempwarehousePosition FROM (
    SELECT	wopp.ID,wopp.SKU,wopp.PositionID,wopp.LockNum,wopp.GoodNum,ISNULL(tl.LockNum,0) RealLockNum FROM RB_WareHouse_OneProductMorePosition_Product wopp(NOLOCK)
    LEFT JOIN #tempLockPositionDetailTotalLock tl(NOLOCK) ON wopp.SKU=tl.SKU AND wopp.PositionID=tl.PositionID AND wopp.CustomerID=tl.CustomerID
    WHERE wopp.CustomerID=@CustomerId AND wopp.WareHouseID=@WarehouseId) a
    
    

  6. 2022-12-09 15:10:45, 由 谢业福 添加备注。

    第五步:修复主子库存不一致情况

    DECLARE @CustomerId INT;
    DECLARE @WarehouseId INT;
    DECLARE @PackageAddTime DATETIME;
    
    SET @CustomerId=1;
    SET @WarehouseId=333; -- 333 为义乌仓库   5312 为东莞仓库
    SET @PackageAddTime='2021-01-01' --包裹创建时间
    --1.子库存汇总
    IF( Object_id('tempdb..#tempOneProductMorePositionProduct') IS NOT NULL )
      BEGIN
          DROP TABLE #tempOneProductMorePositionProduct
      END
    
    SELECT SKU,
           WareHouseID,
           CustomerID,
           Sum(GoodNum + LockNum) Num,
           Max(ID)                ziId
    INTO   #tempOneProductMorePositionProduct
    FROM   dbo.RB_WareHouse_OneProductMorePosition_Product (NOLOCK)
    WHERE  CustomerID = @CustomerId
           AND WareHouseID = @WarehouseId
    GROUP  BY SKU,
              WareHouseID,
              CustomerID
    
    --2.主库存包裹锁定
    IF( Object_id('tempdb..#MainPackageLock') IS NOT NULL )
      BEGIN
          DROP TABLE #MainPackageLock
      END
    
    SELECT Sum(d.ProductNum)ProductNum,
           wp.SKU,
           @CustomerID      AS CustomerID,
           @WarehouseID     AS WarehouseID
    INTO   #MainPackageLock
    FROM   RB_WareHouse_Product wp (nolock)-- 包裹锁定
           LEFT JOIN RB_Procurement_Order_Package_OrderDetail d (nolock)
             ON wp.SKU = d.SKU
                AND wp.CustomerID = d.CustomerID
           LEFT JOIN RB_Procurement_Order_Package p (nolock)
             ON p.ID = d.PackageID
                AND p.CustomerID = d.CustomerID
                AND wp.WareHouseID = p.WareHouseID
           LEFT JOIN RB_Procurement_Order_PositionCode (nolock) c
             ON d.OrderListID = c.OrderListID
                AND d.CustomerID = c.CustomerID
    WHERE  wp.CustomerID = @CustomerID
           AND wp.WareHouseID = @WarehouseID
           ---AND p.PackageState IN( 0, 1, 2, 5 )
           AND p.PackageState = 2--已打印的锁定
           AND p.ID > 0
           AND c.StockOperateTime IS NULL
    GROUP  BY wp.SKU
    
    --3.子库存包裹批次锁定
    IF( Object_id('tempdb..#SubPackageLock') IS NOT NULL )
      BEGIN
          DROP TABLE #SubPackageLock
      END
    
    SELECT Sum(LockNum) AS LockNum,
           SKU,
           @CustomerID  AS CustomerID,
           @WarehouseID AS WarehouseID
    INTO   #SubPackageLock
    FROM   dbo.RB_WareHouse_LockPositionDetail(NOLOCK)
    WHERE  WarehouseID = @WarehouseId
           AND CustomerID = @CustomerId
           AND OrderType = 6
           AND LockNum > 0
    GROUP  BY SKU
    
    --4.进行统计
    IF( Object_id('tempdb..#tempDiffWarehouseProduct') IS NOT NULL )
      BEGIN
          DROP TABLE #tempDiffWarehouseProduct
      END
    
    SELECT a.ID,
           a.WareHouseID,
           a.CustomerID,
           a.SKU,
           --主表数据
           a.GoodNum                                                                                     AS ZhuGoodNum,--主库存的可用
           a.LockNum                                                                                     AS ZhuLockNum,--主库存的锁定
           a.GoodNum + a.LockNum                                                                         AS ZhuAllNum,--主库存的所有库存
           Isnull(c.ProductNum, 0)                                                                       AS ZhuPackageNum,--主表包裹锁定
           -- 子表数据
           Isnull (b.ziId, 0)                                                                            AS ZiID,-- 子表ID
           Isnull(b.Num, 0)                                                                              AS ZiAllNum,-- 子表存所有库存
           Isnull(d.LockNum, 0)                                                                          AS ZiPackageNum,--子表包裹锁定
           Isnull(c.ProductNum, 0) - Isnull(d.LockNum, 0)                                                AS PackageDiff,--包裹差
           a.GoodNum + a.LockNum - Isnull(b.Num, 0) - ( Isnull(c.ProductNum, 0) - Isnull(d.LockNum, 0) ) DiffNum --主子不一致的
    INTO   #tempDiffWarehouseProduct
    FROM   RB_WareHouse_Product(NOLOCK) a
           LEFT JOIN #tempOneProductMorePositionProduct b
             ON a.SKU = b.SKU
                AND a.CustomerID = b.CustomerID
                AND a.WareHouseID = b.WareHouseID
           LEFT JOIN #MainPackageLock c
             ON c.SKU = a.SKU
                AND c.CustomerID = a.CustomerID
                AND c.WarehouseID = a.WareHouseID
           LEFT JOIN #SubPackageLock d
             ON d.sku = a.SKU
                AND d.WarehouseID = a.WareHouseID
                AND d.CustomerID = a.CustomerID
    WHERE  a.CustomerID = @CustomerId
           AND a.WareHouseID = @WarehouseId
    
    DROP TABLE #tempOneProductMorePositionProduct;
    
    DROP TABLE #MainPackageLock
    
    DROP TABLE #SubPackageLock
    
    --SELECT b.WareHouseName, a.* FROM  #tempDiffWarehouseProduct a
    --LEFT JOIN dbo.RB_WareHouse b (NOLOCK) ON a.WareHouseID=b.ID
    -- WHERE DiffNum!=0 
    SELECT b.WareHouseName                          AS '仓库',
           a.SKU,
           a.ZhuAllNum                              AS '主库存所有库存',
           a.ZiAllNum                               AS '子库存所有',
           a.ZhuPackageNum                          AS '主库存已打印未扣除',
           a.ZiPackageNum                           AS '子库存已打印未扣除',
           a.PackageDiff                            AS '包裹锁定差值(主库存已打印未扣除- 子库存已打印未扣除=子库存已打印已扣除)',
    	   --注意 如果这个值(包裹锁定差值)是负数的话:说明主库存锁定或者子库存的锁定是有异常的 会在前面一步修复
           a.ZhuAllNum - a.ZiAllNum - a.PackageDiff AS '主子差(主库存所有库存-子库存所有库存-包裹锁定差)'
    FROM   #tempDiffWarehouseProduct a
           LEFT JOIN dbo.RB_WareHouse b (NOLOCK)
             ON a.WareHouseID = b.ID
    WHERE  DiffNum != 0 
    DROP TABLE #tempDiffWarehouseProduct


  7. 2022-12-09 16:12:46, 由 谢业福 添加备注。

    补充:第三步修复完 需要  处理锁定为0的数据

     --删除锁定为0的
     UPDATE RB_WareHouse_LockPositionDetail SET CustomerID=-1 WHERE CustomerID=@CustomerId AND WarehouseID=@WarehouseId AND LockNum<=0 
  8. 2022-12-09 20:28:40, 由 谢业福 完成。
    修改了 总计消耗,旧值为 "0",新值为 "8"。
    修改了 实际完成,旧值为 "",新值为 "2022-12-09 20:28:23"。
    修改了 任务状态,旧值为 "wait",新值为 "done"。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-12-09 20:28:40"。
    修改了 预计剩余,旧值为 "8",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "xieyefu"。
  9. 2022-12-16 14:14:24, 由 zhengqiao 编辑。
    修改了 最初预计,旧值为 "8",新值为 "9"。
    需求评审工时:18 H
    此项任务工时调整为:9H
  10. 2023-02-01 16:40:27, 由 谢业福 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "xieyefu",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "xieyefu"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2023-02-01 16:40:27"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 技术研发中心 12月分支版本(2022年)
所属模块 /
相关需求 【95%上网率优化】仓库主子表库存优化
指派给 Closed 于 2023-02-01 16:40:27
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 程伟 于 2022-12-08 17:58:45
由谁完成 谢业福 于 2022-12-09 20:28:23
由谁取消 暂无
由谁关闭 谢业福 于 2023-02-01 16:40:27
关闭原因 已完成
最后编辑 谢业福 于 2023-02-01 16:40:27
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 9工时
总计消耗 8工时
预计剩余 0工时
预计开始 0000-00-00
实际开始 2022-12-09
截止日期 0000-00-00