success('产品_基本资料'); } /** * 产品资料 */ /** * 新增产品资料 */ public function ProductAdd() { if (!Request::instance()->isPost()) { $this->error('非法请求'); } $params = Request::instance()->param(); // 自动生成产品编号:CP000001 $lastCode = \db('产品_基本资料')->order('id desc')->value('product_code'); if ($lastCode) { $num = intval(str_replace('CP', '', $lastCode)) + 1; } else { $num = 1; } $params['product_code'] = 'CP' . str_pad($num, 6, '0', STR_PAD_LEFT); $data = []; $data['product_code'] = $params['product_code']; $data['product_name'] = $params['product_name']; $data['product_type'] = $params['product_type']; $data['unit'] = $params['unit']; $data['Sys_id'] = $params['sys_id']; $data['status'] = 1; $data['Sys_rq'] = date('Y-m-d H:i:s'); $result = \db('产品_基本资料')->insert($data); if ($result) { $this->success('新增成功'); } else { $this->error('新增失败'); } } /** * 获取左侧菜单产品分类列表 * 按 product_type 分组 → 分类下显示对应产品 */ public function ProductTypeMenu() { if (Request::instance()->isGet() == false){ $this->error('非法请求'); } $params = Request::instance()->param(); // 获取所有产品 $productList = \db('产品_基本资料')->whereNull('mod_rq') ->column('id,product_code,product_name,product_type'); $data = []; if ($productList) { foreach ($productList as $item) { $type = $item['product_type'] ?: '未分类'; // 分类 $data[$type]['name'] = $type; // 分类下的产品 $data[$type]['list'][] = [ 'id' => $item['id'], 'product_code' => $item['product_code'], 'product_name' => $item['product_name'] ]; } } // 转成索引数组返回 $result = array_values($data); $this->success('获取成功', $result); } /** * 获取产品资料列表(产品→部件→工艺 三层编号关联) */ public function ProductList() { if (!Request::instance()->isGet()) { $this->error('非法请求'); } $params = Request::instance()->param(); $where = []; if (!empty($params['search'])) { $where['product_code|product_name|product_type'] = array('like', '%'.$params['search'].'%'); } $limit = empty($params['limit']) ? 30 : $params['limit']; $pages = empty($params['page']) ? 1 : $params['page']; // 1. 查询产品主表 $productList = db('产品_基本资料') ->whereNull('mod_rq') ->where($where) ->page($pages, $limit) ->order('id desc') ->select(); if (empty($productList)) { $this->success('获取成功', ['list' => [], 'count' => 0]); } // 提取产品编号 $productCodes = array_column($productList, 'product_code'); // 2. 查询部件(通过 product_code) $parts = db('产品_部件资料') ->whereNull('mod_rq') ->whereIn('product_code', $productCodes) ->select(); // 提取部件编码 part_code $partCodes = array_column($parts, 'part_code'); // 3. 查询工艺(通过 part_code) $process = []; if (!empty($partCodes)) { $process = db('产品_工艺资料') ->whereNull('mod_rq') ->whereIn('part_code', $partCodes) ->select(); } // 部件按 product_code 分组 $partGroup = []; foreach ($parts as $val) { $partGroup[$val['product_code']][] = $val; } // 工艺按 part_code 分组 $processGroup = []; foreach ($process as $val) { $processGroup[$val['part_code']][] = $val; } // 组装数据 foreach ($productList as &$product) { $currentParts = $partGroup[$product['product_code']] ?? []; foreach ($currentParts as &$item) { $item['processes'] = $processGroup[$item['part_code']] ?? []; } $product['parts'] = $currentParts; } // 统计总数 $count = db('产品_基本资料') ->whereNull('mod_rq') ->where($where) ->count(); $this->success('获取成功', [ 'list' => $productList, 'count' => $count ]); } /** * 修改产品资料 */ public function ProductEdit() { if (!Request::instance()->isPost()) { $this->error('非法请求'); } $params = Request::instance()->param(); if (empty($params['id'])) { $this->error('请选择数据'); } // 禁止修改编号 unset($params['product_code']); $data = []; $data['product_name'] = $params['product_name']; $data['product_type'] = $params['product_type']; $data['unit'] = $params['unit']; $data['Sys_id'] = $params['sys_id']; $data['updatetime'] = date('Y-m-d H:i:s'); echo "
";
        print_r($data);
        echo "
";die;

        $result = \db('产品_基本资料')
            ->where('id', $params['id'])
            ->update($data);

        if ($result !== false) {
            $this->success('修改成功');
        } else {
            $this->error('修改失败');
        }
    }

    /**
     * 删除产品资料(软删除)
     */
    public function ProductDelete()
    {
        if (!Request::instance()->isPost()) {
            $this->error('非法请求');
        }

        $id = input('id');
        if (empty($id)) {
            $this->error('请选择需要删除的数据');
        }

        $ids = explode(',', $id);

        $result = \db('产品_基本资料')
            ->where('id', 'in', $ids)
            ->update(['mod_rq' => date('Y-m-d H:i:s')]);

        if ($result !== false) {
            $this->success('删除成功');
        } else {
            $this->error('删除失败');
        }
    }

    /**
     * 获取产品部件列表
     */
    public function ProductPartList()
    {
        if (Request::instance()->isGet() == false){
            $this->error('非法请求');
        }
        $params = Request::instance()->param();

        $where = [];

        if (!empty($params['search'])){
            $where['part_name'] = array('like','%'.$params['search'].'%');
        }
        if (!empty($params['product_code'])){
            $where['product_code'] = array('like','%'.$params['product_code'].'%');
        }
        $limit = $params['limit'];
        if (empty($limit)){
            $limit = 30;
        }
        $pages = $params['page'];
        if (empty($pages)){
            $pages = 1;
        }
        $list = \db('产品_部件资料')->whereNull('mod_rq')->where($where)->page($pages)->limit($limit)->order('id desc')->select();
        $count = \db('产品_部件资料')->whereNull('mod_rq')->where($where)->page($pages)->limit($limit)->count();

        $this->success('获取成功', ['list' => $list, 'count' => $count]);
    }

    /**
     * 获取产品工艺列表
     */
    public function ProductGyList()
    {
        if (Request::instance()->isGet() == false){
            $this->error('非法请求');
        }
        $params = Request::instance()->param();

        $where = [];

        if (!empty($params['search'])){
            $where['gy_name'] = array('like','%'.$params['search'].'%');
        }
        if (!empty($params['product_code'])){
            $where['product_code'] = $params['product_code'];
        }
        $limit = $params['limit'];
        if (empty($limit)){
            $limit = 30;
        }
        $pages = $params['page'];
        if (empty($pages)){
            $pages = 1;
        }
        $list = \db('产品_工艺资料')->whereNull('mod_rq')->where($where)->page($pages)->limit($limit)->order('id desc')->select();
        $count = \db('产品_工艺资料')->whereNull('mod_rq')->where($where)->page($pages)->limit($limit)->count();

        $this->success('获取成功', ['list' => $list, 'count' => $count]);

    }




}