value('worker_number')) { self::setError('该工号已存在!'); return false; } if (MasterWorkerTemporary::where('mobile', $params['mobile'])->value('mobile')) { self::setError('该手机号已存在!'); return false; } if($params['category_ids']){ foreach ($params['category_ids'] as $val){ is_array($val)?($ids[] = end($val)):($ids[] = $val); } $params['category_ids'] = implode(',',$ids); } $masterWorker = MasterWorkerTemporary::create([ 'worker_number' => $params['worker_number'], 'real_name' => $params['real_name'], 'mobile' => $params['mobile'], 'is_disable' => $params['is_disable'], 'work_status' => $params['work_status']??0, 'remark' => $params['remark']??'', 'category_ids' => $params['category_ids']??'', ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2024/07/10 18:17 */ public static function edit(array $params): bool { Db::startTrans(); try { if($params['category_ids']){ foreach ($params['category_ids'] as $val){ is_array($val)?($ids[] = end($val)):($ids[] = $val); } $params['category_ids'] = implode(',',$ids); } $update = [ 'real_name' => $params['real_name'], 'is_disable' => $params['is_disable'], 'work_status' => $params['work_status']??0, 'remark' => $params['remark']??'', 'category_ids' => $params['category_ids']??'', ]; MasterWorkerTemporary::where('id', $params['id'])->update($update); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2024/07/10 18:17 */ public static function delete(array $params): bool { return MasterWorkerTemporary::destroy($params['id']); } /** * @notes 获取详情 * @param $params * @return array * @author likeadmin * @date 2024/07/10 18:17 */ public static function detail($params): array { $info = MasterWorkerTemporary::findOrEmpty($params['id'])->toArray(); if(!empty($info['category_ids'])){ $info['category_ids'] = explode(',',$info['category_ids']); $info['category_ids'] = array_map('intval', $info['category_ids']); } return $info; } /** * 导入工程师 */ public static function import($file) { $mobile = []; try { // 移动文件到指定目录 $info = $file->move(root_path('public') . 'uploads'); if ($info) { $filePath = $info->getPathname(); // 读取 Excel 文件 $spreadsheet = IOFactory::load($filePath); $worksheet = $spreadsheet->getActiveSheet(); $highestRow = $worksheet->getHighestRow(); $number = MasterWorkerTemporary::count(); // 假设第一行为表头,从第二行开始读取数据 for ($row = 2; $row <= $highestRow; $row++) { $data = [ 'real_name' => $worksheet->getCell('A' . $row)->getValue(), 'mobile' => $worksheet->getCell('B' . $row)->getValue(), 'remark' => $worksheet->getCell('C' . $row)->getValue(), ]; if (empty($data['mobile'])) { continue; } if(MasterWorkerTemporary::where('mobile', $data['mobile'])->value('mobile')){ $mobile[] = $data['mobile']; continue; } $number += 1; $data['worker_number'] = str_pad($number, 6, '0', STR_PAD_LEFT); MasterWorkerTemporary::create($data); } if ($mobile) { self::setError('手机号'.implode(',',$mobile).'已存在'); return false; } return true; } else { self::setError($file->getError()); return false; } } catch (\Exception $e) { self::setError($e->getMessage()); return false; } } }