列表数据

//Controller
//订单组日工作量列表
public function orderDayWorkloadAction() {
    if ($this->_request->isPost()) {
        $warehouseId = $this->_request->getParam("userWarehouse", "");
        $dateFrom = $this->_request->getParam("dateFrom", "");
        $post = $this->_request->getParam("post", "");
        $return = array(
            "ask" => 0,
            "msg" => "",
            "data" => "",
            "count" => "",
        );
        $row = array();
        //最快时间
        $owFast = "";
        //平均时间
        $owAvg = "";
        //权限
        $session = new Zend_Session_Namespace("userAuth");
        $permissions = Common_Service_Verfication::check($session->userID, "order", "order", "orderdayworkload", "");
        if (!$dateFrom) {
            $return['msg'] = "请选择时间";
            die(Zend_Json::encode($return));
        }
        $combination = array(
            "warehouse_id" => $warehouseId,
            "ow_date" => $dateFrom,
            "ow_post" => $post,
        );
        $opIdInfo = Order_Service_OrderWorkload::getCombination($combination, "*");
        if (!$opIdInfo) {
            $return['msg'] = "没有相关数据";
            die(Zend_Json::encode($return));
        }
        foreach ($opIdInfo as $value) {
            //时间、仓库、用户 ID 、岗位作为键
            $owDate = $value['ow_date'];
            $warehouse_id = $value['warehouse_id'];
            $userId = $value['user_id'];
            $owPost = $value['ow_post'];

            $name = User_Service_User::getByUserId($value['user_id']);
            $upName = User_Service_Position::getByUpIdS(array("up_id" => $name['up_id']));

            $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['warehouse_id'] = $value['warehouse_id'];
            //时间
            $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_date'] = $value['ow_date'];
            //姓名
            $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_user_name'] = $value['ow_user_name'];
            //岗位
            $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['up_name'] = $upName[0]['up_name'];
            //账号开通时间
            $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['create_date'] = $name['create_date'];
            $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_post'] = $value['ow_post'];

            //根据时间、仓库、用户 ID 岗位作为键、组成二维数组,如果有相同的键,就把对应值相加
            if (!isset($row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_total_pickup'])) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_total_pickup'] = $value['ow_total_pickup'];
            } else {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_total_pickup'] += $value['ow_total_pickup'];
            }

            //订单票数为一票的情况下显示规范
            if ($value['ow_orders'] == 1 && ($value['ow_avg'] > $value['ow_slow'] || $value['ow_overtime_qty'] > 0)) {
                $owFast = $value['ow_slow'];
                $owAvg = $value['ow_slow'];
            } else {
                $owFast = $value['ow_fast'];
                $owAvg = $value['ow_avg'];
            }
            if ($value['ow_type'] == 0) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastA'] = $owFast;
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_avgA'] = $owAvg;
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_slowA'] = $value['ow_slow'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_ordersA'] = $value['ow_orders'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_overtime_qtyA'] = $value['ow_overtime_qty'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_moreA'] = $value['ow_more'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_wrongA'] = $value['ow_wrong'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_leakageA'] = $value['ow_leakage'];
            } else if ($value['ow_type'] == 1) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastB'] = $owFast;
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_avgB'] = $owAvg;
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_slowB'] = $value['ow_slow'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_ordersB'] = $value['ow_orders'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_overtime_qtyB'] = $value['ow_overtime_qty'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_moreB'] = $value['ow_more'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_wrongB'] = $value['ow_wrong'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_leakageB'] = $value['ow_leakage'];
            } else {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastC'] = $owFast;
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_avgC'] = $owAvg;
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_slowC'] = $value['ow_slow'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_ordersC'] = $value['ow_orders'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_overtime_qtyC'] = $value['ow_overtime_qty'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_moreC'] = $value['ow_more'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_wrongC'] = $value['ow_wrong'];
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_leakageC'] = $value['ow_leakage'];
            }
            if (!isset($row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['up_name'])) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['up_name'] = "";
            }
            if (!isset($row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['create_date'])) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['create_date'] = "";
            }
            if (!isset($row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastA'])) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_avgA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_slowA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_ordersA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_overtime_qtyA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_moreA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_wrongA'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_leakageA'] = "";
            }
            if (!isset($row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastB'])) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_avgB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_slowB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_ordersB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_overtime_qtyB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_moreB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_wrongB'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_leakageB'] = "";
            }
            if (!isset($row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastC'])) {
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_fastC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_avgC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_slowC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_ordersC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_overtime_qtyC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_moreC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_wrongC'] = "";
                $row[$owDate . '-' . $warehouse_id . '-' . $userId . '-' . $owPost]['ow_leakageC'] = "";
            }
        }
        $return = array(
            "ask" => 1,
            "data" => $row,
            "count" => count($row),
            "permissions" => $permissions,
        );
        die(Zend_Json::encode($return));
    }
    //岗位
    $this->view->post = Order_Service_OrderWorkload::$post;
    echo Cff::renderTpl($this->tplDirectory . "order-day-workload.tpl", "layout");
}

//Services
//岗位
public static $post = array(
    "配货员",
    "打包员",
    "分拣员",
);

/*
* $combination          array()             条件
* $type                 * || COUNT(*)
* $page                 Integer             页
* $pageSize             Integer             条数
*/

public static function getCombination($combination, $type = "*", $page = 0, $pageSize = 0) {
   $model = new Order_Model_OrderWorkload();
   $return = $model->getCombination($combination, $type, $page, $pageSize);
   if (is_numeric($return))
       return $return;
   foreach ($return as $key => $value) {
       $return[$key]['owType'] = Zend_I18n::getInstance()->translate(self::$post[$value['ow_type']]);
       $return[$key]['ow_user_name'] = Zend_I18n::getInstance()->translate('1100960');
       if ($value['user_id'] > 0) {
           $user = User_Service_User::getByUserId($value['user_id']);
           $return[$key]['ow_user_name'] = $user['name'];
       }
   }
   return $return;
}

//Models
/*
* $combination          array()             条件
* $type                 * || COUNT(*)
* $page                 Integer             页
* $pageSize             Integer             条数
*/

public function getCombination($combination, $type = "*", $page = 0, $pageSize = 0) {
    $select = $this->_table->getAdapter()->select();
    $table = $this->_table->info("name");
    $select->from($table, $type);
    $select->where("1 = ?", 1);

    if (isset($combination['user_id'])) {
        if (is_array($combination['user_id'])) {
            if (!empty($combination['user_id'])) {
                $select->where("user_id in (?)", $combination['user_id']);
            }
        } else {
            if ($combination['user_id'] != "") {
                $select->where("user_id = ?", $combination['user_id']);
            }
        }
    }
    if (isset($combination['warehouse_id']) && $combination['warehouse_id'] != "") {
        $select->where(" warehouse_id = ?", $combination['warehouse_id']);
    }
    if (isset($combination['ow_date']) && $combination['ow_date'] != "") {
        $select->where("ow_date = ?", $combination['ow_date']);
    }
    if (isset($combination['ow_total_pickup']) && $combination['ow_total_pickup'] != "") {
        $select->where("ow_total_pickup = ?", $combination['ow_total_pickup']);
    }
    if (isset($combination['ow_post']) && $combination['ow_post'] != "") {
        $select->where("ow_post = ?", $combination['ow_post']);
    }
    if (isset($combination['ow_type']) && $combination['ow_type'] == 0) {
        $select->where("ow_type = 0");
    } else if (isset($combination['ow_type']) && $combination['ow_type'] == 1) {
        $select->where("ow_type = 1");
    } else if (isset($combination['ow_type']) && $combination['ow_type'] == 2) {
        $select->where("ow_type = 2");
    }
    if (isset($combination['ow_create_time_gt']) && $combination['ow_create_time_gt'] != "") {
        $select->where("ow_create_time >= ?", $combination['ow_create_time_gt']);
    }
    if (isset($combination['ow_create_time_lt']) && $combination['ow_create_time_lt'] != "") {
        $select->where("ow_create_time <= ?", $combination['ow_create_time_lt']);
    }

    if ("count(*)" == $type) {
        return $this->_table->getAdapter()->fetchOne($select);
    } else {
        if (isset($combination['ow_create_time']) && $combination['ow_create_time'] != "") {
            $select->order("ow_create_time asc");
        } else {
            $select->order("ow_create_time desc");
        }
        if ($pageSize > 0 and $page > 0) {
            $start = ($page - 1) * $pageSize;
            $select->limit($pageSize, $start);
        }
        $sql = $select->__toString();
        return $this->_table->getAdapter()->fetchAll($sql);
    }
}

//Html
<!DOCTYPE html>
<html>
    <head>
        <title>订单组日工作量报表</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link href="/css/order/transport.css" rel="stylesheet" type="text/css"/>
        <script src="/js/order/order/order-day-workload.js"></script>
    </head>
    <body>
        <div class="search_div">
            <form id="sForm" name="sForm" onsubmit='return false;'>
                <div>
                    <label>
                        <{include file=$userWarehouseTpl}>
                    </label>
                    &nbsp;&nbsp;
                    <label>
                        日期:<input type="text" value="" onfocus="this.value = ''" name="dateFrom" style="width:68px;" id="dateFrom" class="myInput"/>
                    </label>
                    &nbsp;&nbsp;
                    <span>岗位:</span>
                    <select name="post">
                        <{foreach from=$post item="item" key="key"}>
                        <option value="<{$key}>"><{$item}></option>
                        <{/foreach}>
                    </select>
                    &nbsp;&nbsp;
                    <input class="button2" type="button" value="标准时间配置表" onclick="posts()">
                    &nbsp;&nbsp;
                    <input class="button search" type="button" value="搜索">
                    &nbsp;&nbsp;
                    <input class="button export" type="button" value="导出报表">
                    &nbsp;&nbsp;
                </div>
            </form>
        </div>
        <form id="exportForm" action="" method="post">
            <table width="100%" border="0" cellspacing="0" cellpadding="0" class="myTab">
                <tbody>
                    <tr class="even-tr">
                        <th>时间</th>
                        <th>姓名</th>
                        <th>岗位</th>
                        <th>账号开通时间</th>
                        <th>完成总票数</th>
                        <th>订单类型</th>
                        <th>最快(分)</th>
                        <th>平均(分)</th>
                        <th>最慢(分)</th>
                        <th>订单票数</th>
                        <th>超时票数</th>
                        <th>多配</th>
                        <th>错配</th>
                        <th>漏配</th>
                    </tr>
                </tbody>
                <tbody id="loadData" style="text-align: center"></tbody>
            </table>
        </form>
        <div id="timeAllocationDialog" title="标准时间配置表"  style="display: none"></div>
        <div id="postDialog" title="岗位选择"  style="display: none"></div>
    </body>
</html>

//Js
//记录总数
var paginationTotal = 20;

//初始化
$(function () {
    //日期
    var dayNamesMin = ["日", "一", "二", "三", "四", "五", "六"];
    var monthNamesShort = ["01月", "02月", "03月", "04月", "05月", "06月", "07月", "08月", "09月", "10月", "11月", "12月"];
    $("#dateFrom").datepicker({
        dayNamesMin: dayNamesMin,
        monthNamesShort: monthNamesShort,
        changeMonth: true,
        changeYear: true,
        dateFormat: "yy-mm-dd"
    });

    //搜索
    $(".search").click(function () {
        initData(0);
    });

});

//列表
function loadData(page, pageSize) {
    loading();
    $.ajax({
        url: "/order/order/order-day-workload",
        async: false,
        dataType: "json",
        type: "post",
        data: $("#sForm").serializeArray(),
        success: function (json) {
            var Html = "";
            if (!json.ask) {
                alertTip(json.msg);
                Html += "<tr><td colspan='100%'>没有相关数据</td></tr>";
            } else {
                paginationTotal = json.count;
                $.each(json.data, function (key, value) {
                    if (value.ow_post == 0) {
                        Html += "<tr>";
                        Html += "<td rowspan='3'>" + value.ow_date + "</td>";
                        Html += "<td rowspan='3'>" + value.ow_user_name + "</td>";
                        Html += "<td rowspan='3'>" + value.up_name + "</td>";
                        Html += "<td rowspan='3'>" + value.create_date + "</td>";
                        Html += "<td rowspan='3'>" + value.ow_total_pickup + "</td>";
                        Html += "<td>A</td>";
                        Html += "<td>" + value.ow_fastA + "</td>";
                        Html += "<td>" + value.ow_avgA + "</td>";
                        Html += "<td>" + value.ow_slowA + "</td>";
                        Html += "<td>" + value.ow_ordersA + "</td>";
                        Html += "<td>" + value.ow_overtime_qtyA + "</td>";
                        Html += "<td>" + value.ow_moreA + "</td>";
                        Html += "<td>" + value.ow_wrongA + "</td>";
                        Html += "<td>" + value.ow_leakageA + "</td>";
                        Html += "</tr>";
                        Html += "<tr>";
                        Html += "<td>B</td>";
                        Html += "<td>" + value.ow_fastB + "</td>";
                        Html += "<td>" + value.ow_avgB + "</td>";
                        Html += "<td>" + value.ow_slowB + "</td>";
                        Html += "<td>" + value.ow_ordersB + "</td>";
                        Html += "<td>" + value.ow_overtime_qtyB + "</td>";
                        Html += "<td>" + value.ow_moreB + "</td>";
                        Html += "<td>" + value.ow_wrongB + "</td>";
                        Html += "<td>" + value.ow_leakageB + "</td>";
                        Html += "</tr>";
                        Html += "<tr>";
                        Html += "<td>C</td>";
                        Html += "<td>" + value.ow_fastC + "</td>";
                        Html += "<td>" + value.ow_avgC + "</td>";
                        Html += "<td>" + value.ow_slowC + "</td>";
                        Html += "<td>" + value.ow_ordersC + "</td>";
                        Html += "<td>" + value.ow_overtime_qtyC + "</td>";
                        Html += "<td>" + value.ow_moreC + "</td>";
                        Html += "<td>" + value.ow_wrongC + "</td>";
                        Html += "<td>" + value.ow_leakageC + "</td>";
                        Html += "</tr>";
                    } else {
                        Html += "<tr>";
                        Html += "<td rowspan='3'>" + value.ow_date + "</td>";
                        Html += "<td rowspan='3'>" + value.ow_user_name + "</td>";
                        Html += "<td rowspan='3'>" + value.up_name + "</td>";
                        Html += "<td rowspan='3'>" + value.create_date + "</td>";
                        Html += "<td rowspan='3'>" + value.ow_total_pickup + "</td>";
                        Html += "<td>A</td>";
                        Html += "<td>" + value.ow_fastA + "</td>";
                        Html += "<td>" + value.ow_avgA + "</td>";
                        Html += "<td>" + value.ow_slowA + "</td>";
                        Html += "<td>" + value.ow_ordersA + "</td>";
                        Html += "<td>" + value.ow_overtime_qtyA + "</td>";
                        Html += "<td></td>";
                        Html += "<td></td>";
                        Html += "<td></td>";
                        Html += "</tr>";
                        Html += "<tr>";
                        Html += "<td>B</td>";
                        Html += "<td>" + value.ow_fastB + "</td>";
                        Html += "<td>" + value.ow_avgB + "</td>";
                        Html += "<td>" + value.ow_slowB + "</td>";
                        Html += "<td>" + value.ow_ordersB + "</td>";
                        Html += "<td>" + value.ow_overtime_qtyB + "</td>";
                        Html += "<td></td>";
                        Html += "<td></td>";
                        Html += "<td></td>";
                        Html += "</tr>";
                        Html += "<tr>";
                        Html += "<td>C</td>";
                        Html += "<td>" + value.ow_fastC + "</td>";
                        Html += "<td>" + value.ow_avgC + "</td>";
                        Html += "<td>" + value.ow_slowC + "</td>";
                        Html += "<td>" + value.ow_ordersC + "</td>";
                        Html += "<td>" + value.ow_overtime_qtyC + "</td>";
                        Html += "<td></td>";
                        Html += "<td></td>";
                        Html += "<td></td>";
                        Html += "</tr>";
                    }
                });
            }
            $("#loadData").html(Html);
        }
    });
    closeLoading();
}

//提示
function alertTip(tip) {
    $('<div title="提示"><p align="center">' + tip + '</p></div>').dialog({
        modal: true,
        buttons: {
            '确定': function () {
                $(this).dialog("close");
            }
        }
    });
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值