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]);
}
}