任务描述
暂无
需求描述

1.    背景

仓库绩效管理规则改变,新的绩效为采用记件进行考核,需增加数据导出,支持新业务;


2.    功能设计


1)在【备库订单包裹(新)】页面中,所有状态的选项卡,均做以下修改:


  1. 搜索条件,增加“集货人员”,位置在拣货人员和装箱人员中间;
  2. 列表后面,操作人员列,添加“集货”字段,位置在拣货和装箱中间;

集货的取值为:【PDA-备货分拣】扫描打单批次的时候,表示集货成功,取集货时候PDA的登录人员;



2)【报告中心-自定义报告导出-报告下载-仓库工作统计报表】,在现有导出数据的基础上,增加两个页签,命名为:


  • 集货数量统计
  • 打单数量统计

集货数量统计中,包含以下字段(按顺序从左往右展示):

集货人;取导出范围内包含的集货人员

产品总数;集货人员对应的包裹的产品数相加

包裹数;集货人员对应的包裹数量

SKU数;集货人员对应的SKU数,不去重(也就是相同包裹有相同产品,累加即可)



打单数量统计中,包含以下字段(按顺序从左往右展示):

打单人;取导出范围内包含的打单人员

产品总数;打单人员对应的包裹的产品数相加

包裹数;打单人员对应的包裹数量

SKU数;打单人员对应的SKU数,不去重(也就是相同包裹有相同产品,累加即可)

欧代标总量;包裹详情中,欧代标签提示中的数量相加(输入框中的数量是可以更改的,建议取提示中的数量)







验收标准
暂无
历史记录  
  1. 2022-07-27 14:13:21, 由 程伟 创建。
  2. 2022-07-30 15:24:59, 由 鞠智明 启动。
    修改了 实际开始,旧值为 "0000-00-00 00:00:00",新值为 "2022-07-30 15:24:56"。
    修改了 任务状态,旧值为 "wait",新值为 "doing"。
  3. 2022-07-30 16:00:24, 由 鞠智明 完成。
    修改了 总计消耗,旧值为 "0",新值为 "12"。
    修改了 实际完成,旧值为 "",新值为 "2022-07-30 15:25:01"。
    修改了 任务状态,旧值为 "doing",新值为 "done"。
    修改了 预计剩余,旧值为 "7",新值为 "0"。
    修改了 由谁完成,旧值为 "",新值为 "juzhiming"。

    开发报告

    1.备库包裹(新)添加集货人搜索,并显示

    2.集货数量统计

    SELECT tb1.SortingPersonName AS 集货人,
           ISNULL(ProductNum, 0) AS 产品总数,
           ISNULL(PackageCount, 0) AS 包裹数,
           ISNULL(SkuCount, 0) AS SKU数
    FROM
    (
        SELECT p.CustomerID,
               tt.SortingPersonID,
               tt.SortingPersonName,
               COUNT(0) AS PackageCount
        FROM RB_Procurement_Order_Package (NOLOCK) p
            INNER JOIN
            (
                SELECT DISTINCT
                    ts.CustomerID,
                    ts.SortingPersonID,
                    ts.SortingPersonName,
                    ts.PackageID
                FROM RB_TwoSorting_Package (NOLOCK) ts
                    INNER JOIN
                    (
                        SELECT CustomerID,
                               PackageID,
                               MAX(ID) MaxId
                        FROM RB_TwoSorting_Package (NOLOCK)
                        WHERE CustomerID = @CustomerID
                              AND SortingPersonID > 0
                              AND SortingTime
                              BETWEEN @StartTime AND @EndTime
                        GROUP BY CustomerID,
                                 PackageID
                    ) t
                        ON t.CustomerID = ts.CustomerID
                           AND t.MaxId = ts.ID
                WHERE ts.CustomerID = @CustomerID
                      AND ts.SortingPersonID > 0
                      AND ts.SortingTime
                      BETWEEN @StartTime AND @EndTime
            ) tt
                ON p.CustomerID = tt.CustomerID
                   AND tt.PackageID = p.ID
            INNER JOIN RB_OrderInfo o (NOLOCK)
                ON p.MergerPackageNo = o.OrderCode
                   AND p.CustomerID = o.CustomerID
        WHERE p.WareHouseID IN ( @WareHouseIds )
              AND p.CustomerID = @CustomerID
              AND p.IsStockOrderWithPackage = 1
        GROUP BY p.CustomerID,
                 tt.SortingPersonID,
                 tt.SortingPersonName
    ) tb1
        LEFT JOIN
        (
            SELECT CustomerID,
                   SortingPersonID,
                   SortingPersonName,
                   COUNT(0) AS SkuCount,
                   SUM(ProductNum) AS ProductNum
            FROM
            (
                SELECT SUM(ProductNum) AS ProductNum,
                       p.CustomerID,
                       tt.SortingPersonID,
                       tt.SortingPersonName,
                       pd.SKU
                FROM RB_Procurement_Order_Package p (NOLOCK)
                    INNER JOIN
                    (
                        SELECT DISTINCT
                            ts.CustomerID,
                            ts.SortingPersonID,
                            ts.SortingPersonName,
                            ts.PackageID
                        FROM RB_TwoSorting_Package (NOLOCK) ts
                            INNER JOIN
                            (
                                SELECT CustomerID,
                                       PackageID,
                                       MAX(ID) MaxId
                                FROM RB_TwoSorting_Package (NOLOCK)
                                WHERE CustomerID = @CustomerID
                                      AND SortingPersonID > 0
                                      AND SortingTime
                                      BETWEEN @StartTime AND @EndTime
                                GROUP BY CustomerID,
                                         PackageID
                            ) t
                                ON t.CustomerID = ts.CustomerID
                                   AND t.MaxId = ts.ID
                        WHERE ts.CustomerID = @CustomerID
                              AND ts.SortingPersonID > 0
                              AND ts.SortingTime
                              BETWEEN @StartTime AND @EndTime
                    ) tt
                        ON p.CustomerID = tt.CustomerID
                           AND tt.PackageID = p.ID
                    LEFT JOIN RB_Procurement_Order_Package_Detail pd (NOLOCK)
                        ON p.ID = pd.PackageID
                           AND p.CustomerID = pd.CustomerID
                    INNER JOIN RB_OrderInfo o (NOLOCK)
                        ON p.MergerPackageNo = o.OrderCode
                           AND p.CustomerID = o.CustomerID
                    LEFT JOIN E_Country (NOLOCK) ec
                        ON p.Country = ec.Shorthand
                WHERE p.WareHouseID IN ( @WareHouseIds )
                      AND p.CustomerID = @CustomerID
                      AND p.IsStockOrderWithPackage = 1
                GROUP BY p.CustomerID,
                         tt.SortingPersonID,
                         tt.SortingPersonName,
                         SKU
            ) TB
            GROUP BY CustomerID,
                     SortingPersonID,
                     SortingPersonName
        ) tb2
            ON tb1.CustomerID = tb2.CustomerID
               AND tb1.SortingPersonID = tb2.SortingPersonID
    WHERE ISNULL(tb1.SortingPersonID, 0) > 0;


    测试环境 



    3.打单数量统计



    SELECT tb1.PrintAdminName AS 打单人,
           ISNULL(ProductNum, 0) AS 产品总数,
           ISNULL(PackageCount, 0) AS 包裹数,
           ISNULL(SkuCount, 0) AS SKU数,
           ISNULL(tb2.PrintODNum, 0) AS 欧代标总量
    FROM
    (
        SELECT p.CustomerID,
               p.PrintAdminID,
               p.PrintAdminName,
               COUNT(0) AS PackageCount
        FROM RB_Procurement_Order_Package p
            INNER JOIN RB_OrderInfo o (NOLOCK)
                ON p.MergerPackageNo = o.OrderCode
                   AND p.CustomerID = o.CustomerID
        WHERE p.PrintTime
              BETWEEN @StartTime AND @EndTime
              AND p.WareHouseID IN ( @WareHouseIds )
              AND p.CustomerID = @CustomerID
              AND p.IsStockOrderWithPackage = 1
        GROUP BY p.CustomerID,
                 PrintAdminID,
                 PrintAdminName
    ) tb1
        LEFT JOIN
        (
            SELECT CustomerID,
                   PrintAdminName,
                   PrintAdminID,
                   COUNT(0) AS SkuCount,
                   SUM(ProductNum) AS ProductNum,
                   SUM(PrintODNum) AS PrintODNum
            FROM
            (
                SELECT SUM(ProductNum) AS ProductNum,
                       p.CustomerID,
                       p.PrintAdminName,
                       p.PrintAdminID,
                       pd.SKU,
                       ec.IsEuropeanUnion,
                       pt.IsNeedCeCertification,
                       CASE
                           WHEN ec.IsEuropeanUnion = 1
                                AND pt.IsNeedCeCertification = 1 THEN
                               SUM(ProductNum)
                           ELSE
                               0
                       END PrintODNum
                FROM RB_Procurement_Order_Package p (NOLOCK)
                    LEFT JOIN RB_Procurement_Order_Package_Detail pd (NOLOCK)
                        ON p.ID = pd.PackageID
                           AND p.CustomerID = pd.CustomerID
                    INNER JOIN RB_OrderInfo o (NOLOCK)
                        ON p.MergerPackageNo = o.OrderCode
                           AND p.CustomerID = o.CustomerID
                    LEFT JOIN E_Country (NOLOCK) ec
                        ON p.Country = ec.Shorthand
                    LEFT JOIN dbo.RB_Product (NOLOCK) pt
                        ON pd.CustomerID = pt.CustomerID
                           AND pd.SKU = pt.SKU
                WHERE p.PrintTime
                      BETWEEN @StartTime AND @EndTime
                      AND p.WareHouseID IN ( @WareHouseIds )
                      AND p.CustomerID = @CustomerID
                      AND p.IsStockOrderWithPackage = 1
                GROUP BY p.CustomerID,
                         PrintAdminName,
                         p.PrintAdminID,
                         pd.SKU,
                         ec.IsEuropeanUnion,
                         pt.IsNeedCeCertification
            ) TB
            GROUP BY CustomerID,
                     PrintAdminName,
                     PrintAdminID
        ) tb2
            ON tb1.CustomerID = tb2.CustomerID
               AND tb1.PrintAdminID = tb2.PrintAdminID
    WHERE ISNULL(tb1.PrintAdminID, 0) > 0;



  4. 2022-08-01 17:12:51, 由 鞠智明 添加备注。
    SELECT tb1.PrintAdminName AS 打单人,
           ISNULL(ProductNum, 0) AS 产品总数,
           ISNULL(PackageCount, 0) AS 包裹数,
           ISNULL(SkuCount, 0) AS SKU数,
           ISNULL(tb2.PrintODNum, 0) AS 欧代标总量
    FROM
    (
        SELECT p.CustomerID,
               p.PrintAdminID,
               p.PrintAdminName,
               COUNT(0) AS PackageCount
        FROM RB_Procurement_Order_Package p
            INNER JOIN RB_OrderInfo o (NOLOCK)
                ON p.MergerPackageNo = o.OrderCode
                   AND p.CustomerID = o.CustomerID
        WHERE p.PrintTime
              BETWEEN @StartTime AND @EndTime
              AND p.WareHouseID IN ( @WareHouseIds  )
              AND p.CustomerID = @CustomerID
              AND p.IsStockOrderWithPackage = 1
        GROUP BY p.CustomerID,
                 PrintAdminID,
                 PrintAdminName
    ) tb1
        LEFT JOIN
        (
            SELECT CustomerID,
                   PrintAdminName,
                   PrintAdminID,
                   SUM(skuNum) AS SkuCount,
                   SUM(ProductNum) AS ProductNum,
                   SUM(PrintODNum) AS PrintODNum
            FROM
            (
                SELECT SUM(ProductNum) AS ProductNum,
                       p.CustomerID,
                       p.PrintAdminName,
                       p.PrintAdminID,
                       COUNT(0) skuNum,
                       ec.IsEuropeanUnion,
                       pt.IsNeedCeCertification,
                       CASE
                           WHEN ec.IsEuropeanUnion = 1
                                AND pt.IsNeedCeCertification = 1 THEN
                               SUM(ProductNum)
                           ELSE
                               0
                       END PrintODNum
                FROM RB_Procurement_Order_Package p (NOLOCK)
                    LEFT JOIN RB_Procurement_Order_Package_Detail pd (NOLOCK)
                        ON p.ID = pd.PackageID
                           AND p.CustomerID = pd.CustomerID
                    INNER JOIN RB_OrderInfo o (NOLOCK)
                        ON p.MergerPackageNo = o.OrderCode
                           AND p.CustomerID = o.CustomerID
                    LEFT JOIN E_Country (NOLOCK) ec
                        ON p.Country = ec.Shorthand
                    LEFT JOIN dbo.RB_Product (NOLOCK) pt
                        ON pd.CustomerID = pt.CustomerID
                           AND pd.SKU = pt.SKU
                WHERE p.PrintTime
                      BETWEEN @StartTime AND @EndTime
                      AND p.WareHouseID IN ( @WareHouseIds  )
                      AND p.CustomerID = @CustomerID
                      AND p.IsStockOrderWithPackage = 1
                GROUP BY p.CustomerID,
                         PrintAdminName,
                         p.PrintAdminID,
                         --pd.SKU,
                         ec.IsEuropeanUnion,
                         pt.IsNeedCeCertification
            ) TB
            GROUP BY CustomerID,
                     PrintAdminName,
                     PrintAdminID
        ) tb2
            ON tb1.CustomerID = tb2.CustomerID
               AND tb1.PrintAdminID = tb2.PrintAdminID
    WHERE ISNULL(tb1.PrintAdminID, 0) > 0;





    SELECT tb1.SortingPersonName AS 集货人,
           ISNULL(ProductNum, 0) AS 产品总数,
           ISNULL(PackageCount, 0) AS 包裹数,
           ISNULL(SkuCount, 0) AS SKU数
    FROM
    (
        SELECT p.CustomerID,
               tt.SortingPersonID,
               tt.SortingPersonName,
               COUNT(0) AS PackageCount
        FROM RB_Procurement_Order_Package (NOLOCK) p
            INNER JOIN
            (
                SELECT DISTINCT
                    ts.CustomerID,
                    ts.SortingPersonID,
                    ts.SortingPersonName,
                    ts.PackageID
                FROM RB_TwoSorting_Package (NOLOCK) ts
                    INNER JOIN
                    (
                        SELECT CustomerID,
                               PackageID,
                               MAX(ID) MaxId
                        FROM RB_TwoSorting_Package (NOLOCK)
                        WHERE CustomerID = @CustomerID
                              AND SortingPersonID > 0
                              AND SortingTime
                              BETWEEN @StartTime AND @EndTime
                        GROUP BY CustomerID,
                                 PackageID
                    ) t
                        ON t.CustomerID = ts.CustomerID
                           AND t.MaxId = ts.ID
                WHERE ts.CustomerID = @CustomerID
                      AND ts.SortingPersonID > 0
                      AND ts.SortingTime
                      BETWEEN @StartTime AND @EndTime
            ) tt
                ON p.CustomerID = tt.CustomerID
                   AND tt.PackageID = p.ID
            INNER JOIN RB_OrderInfo o (NOLOCK)
                ON p.MergerPackageNo = o.OrderCode
                   AND p.CustomerID = o.CustomerID
        WHERE p.WareHouseID IN ( @WareHouseIds )
              AND p.CustomerID = @CustomerID
              AND p.IsStockOrderWithPackage = 1
        GROUP BY p.CustomerID,
                 tt.SortingPersonID,
                 tt.SortingPersonName
    ) tb1
        LEFT JOIN
        (
            SELECT CustomerID,
                   SortingPersonID,
                   SortingPersonName,
                   SUM(skuNum) AS SkuCount,
                   SUM(ProductNum) AS ProductNum
            FROM
            (
                SELECT SUM(ProductNum) AS ProductNum,
                       p.CustomerID,
                       tt.SortingPersonID,
                       tt.SortingPersonName,
                       COUNT(0) skuNum
                FROM RB_Procurement_Order_Package p (NOLOCK)
                    INNER JOIN
                    (
                        SELECT DISTINCT
                            ts.CustomerID,
                            ts.SortingPersonID,
                            ts.SortingPersonName,
                            ts.PackageID
                        FROM RB_TwoSorting_Package (NOLOCK) ts
                            INNER JOIN
                            (
                                SELECT CustomerID,
                                       PackageID,
                                       MAX(ID) MaxId
                                FROM RB_TwoSorting_Package (NOLOCK)
                                WHERE CustomerID = @CustomerID
                                      AND SortingPersonID > 0
                                      AND SortingTime
                                      BETWEEN @StartTime AND @EndTime
                                GROUP BY CustomerID,
                                         PackageID
                            ) t
                                ON t.CustomerID = ts.CustomerID
                                   AND t.MaxId = ts.ID
                        WHERE ts.CustomerID = @CustomerID
                              AND ts.SortingPersonID > 0
                              AND ts.SortingTime
                              BETWEEN @StartTime AND @EndTime
                    ) tt
                        ON p.CustomerID = tt.CustomerID
                           AND tt.PackageID = p.ID
                    LEFT JOIN RB_Procurement_Order_Package_Detail pd (NOLOCK)
                        ON p.ID = pd.PackageID
                           AND p.CustomerID = pd.CustomerID
                    INNER JOIN RB_OrderInfo o (NOLOCK)
                        ON p.MergerPackageNo = o.OrderCode
                           AND p.CustomerID = o.CustomerID
                    LEFT JOIN E_Country (NOLOCK) ec
                        ON p.Country = ec.Shorthand
                WHERE p.WareHouseID IN ( @WareHouseIds )
                      AND p.CustomerID = @CustomerID
                      AND p.IsStockOrderWithPackage = 1
                GROUP BY p.CustomerID,
                         tt.SortingPersonID,
                         tt.SortingPersonName
                         
            ) TB
            GROUP BY CustomerID,
                     SortingPersonID,
                     SortingPersonName
        ) tb2
            ON tb1.CustomerID = tb2.CustomerID
               AND tb1.SortingPersonID = tb2.SortingPersonID
    WHERE ISNULL(tb1.SortingPersonID, 0) > 0;
  5. 2022-08-03 16:05:35, 由 鞠智明 关闭。
    修改了 任务状态,旧值为 "done",新值为 "closed"。
    修改了 指派给 ,旧值为 "juzhiming",新值为 "closed"。
    修改了 由谁关闭,旧值为 "",新值为 "juzhiming"。
    修改了 关闭时间,旧值为 "0000-00-00 00:00:00",新值为 "2022-08-03 16:05:35"。
    修改了 关闭原因,旧值为 "",新值为 "done"。
所属迭代 技术研发中心 8月分支 版本(2022年)
所属模块 /
相关需求 自定义报告导出-仓库工作统计报表&备库订单包裹(新)优化
指派给 Closed 于 2022-08-03 16:05:35
任务类型 后端
任务标签 初始
开发组
任务状态 已关闭
进度 100%
优先级 P2
关键词
抄送给
由谁创建 程伟 于 2022-07-27 14:13:21
由谁完成 鞠智明 于 2022-07-30 15:25:01
由谁取消 暂无
由谁关闭 鞠智明 于 2022-08-03 16:05:35
关闭原因 已完成
最后编辑 鞠智明 于 2022-08-03 16:05:35
团队 最初预计 总计消耗 预计剩余
工时信息
最初预计 7工时
总计消耗 12工时
预计剩余 0工时
预计开始 0000-00-00
实际开始 2022-07-30
截止日期 0000-00-00